コルドバ: 1.6.0
iOS: 5.1
X コード: 4.3.1
非常に基本的なサンプル プログラムを使用して、Phonegap 1.6.0 の handleOpenURL を利用しようとしています。http/https リクエストが行われるたびに URL を分析したいと思います。私が今行ったことは、ログメッセージを追加して、URL のホストを確認することだけです。
- (BOOL) application:(UIApplication*)application handleOpenURL:
(NSURL*)url
{
NSLog(@"Hi");
NSLog(@"Host: %@", [url host]);
if (!url) {
return NO;
}
...
}
ただし、ログ メッセージはコンソールに何も書き込みません。
私はコメントに気づきました:
// only valid if Example-Info.plist specifies a protocol to handle
私の Example-Info.plist ファイルが間違っているのではないでしょうか? 「処理するプロトコルを指定する」という意味であると仮定して、CFBundleURLTypes を追加しました。どこかに何かを追加する必要がありますか?以下は、私の Example-Info.plist ファイルのサンプル セクションです。シミュレーターが .plist の変更を認識していない可能性はありますか?
...
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>http</string>
<string>https</string>
</array>
</dict>
</array>
handleOpenURL が廃止されたため、私も実装しました。
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication (NSString *)sourceApplication annotation:(id)annotation
{
NSLog(@"Hi");
...
}
アプリケーションで URL を開くと、どちらも呼び出されません。私はスタックオーバーフローですべてのソリューションを試しましたが、そのような運はありませんでした。参考になればページ遷移にjQuery mobile 1.1.0を使用しています。