質問編集履歴

2

解決

2016/12/11 03:18

投稿

shanxia
shanxia

スコア1038

test CHANGED
File without changes
test CHANGED
@@ -125,3 +125,25 @@
125
125
 
126
126
 
127
127
  他に必要な設定はあるのでしょうか?
128
+
129
+
130
+
131
+ === 2016/12/11 追記2 ===
132
+
133
+ info.plistの記述が間違いでした。
134
+
135
+ ```xml
136
+
137
+ <key>LSApplicationQueriesSchemes</key>
138
+
139
+ <array>
140
+
141
+ <string>myscheme</string>
142
+
143
+ </array>
144
+
145
+ ...
146
+
147
+ ```
148
+
149
+ ://を削除すれば成功しました。

1

回答を元に追記。

2016/12/11 03:18

投稿

shanxia
shanxia

スコア1038

test CHANGED
File without changes
test CHANGED
@@ -63,3 +63,65 @@
63
63
  これと同じことをiOSでもできないでしょうか。
64
64
 
65
65
  ご教授お願いします。
66
+
67
+
68
+
69
+ === 2016/12/11 追記 ===
70
+
71
+ 回答いただいたとおり、canOpenURLを使用しました。
72
+
73
+
74
+
75
+ ```swift
76
+
77
+ let scheme = URL(string: "myscheme://")!
78
+
79
+ if UIApplication.shared.canOpenURL(scheme) {
80
+
81
+ let url = URL(string: "\(scheme)xxxxxxxx")!
82
+
83
+ UIApplication.shared.open(url as URL)
84
+
85
+ }
86
+
87
+ else {
88
+
89
+ let storeURL = URL(string:"itms-apps://itunes.apple.com/app/id9999999999")!
90
+
91
+ UIApplication.shared.open(storeURL as URL)
92
+
93
+ }
94
+
95
+ ```
96
+
97
+ ところがcanOpenURLが常に失敗して、else文が実行されてしまいます。
98
+
99
+ エラーメッセージが次の通りです。
100
+
101
+
102
+
103
+ > canOpenURL: failed for URL: "myScheme://" - error: "This app is not allowed to query for scheme myscheme"
104
+
105
+
106
+
107
+ 条件分岐を行わず、UIApplication.shared.open(url as URL) を直接実行すると、アプリの起動は成功します。
108
+
109
+ info.plistには、次の様に指定しています。
110
+
111
+ ```xml
112
+
113
+ <key>LSApplicationQueriesSchemes</key>
114
+
115
+ <array>
116
+
117
+ <string>myscheme://</string>
118
+
119
+ </array>
120
+
121
+ ...
122
+
123
+ ```
124
+
125
+
126
+
127
+ 他に必要な設定はあるのでしょうか?