1

コルドバ: 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を使用しています。

4

1 に答える 1

1

それは、これらのメソッドの目的ではありません。これらは、UIWebView で開く URL ではなく、アプリを開くために使用される URL を処理するためのものです。

UIWebViewのデリゲート メソッドを確認する必要があります。

具体的には

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

于 2012-04-17T13:50:23.457 に答える