科尔多瓦:1.6.0

iOS:5.1

XCode:4.3.1

我正在尝试使用一个非常基本的示例程序来使用Phonegap 1.6.0中的handleOpenURL。我想在每次发出http / https请求时分析一个网址。我现在所要做的就是添加一条日志消息以查看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进行页面转换。

最佳答案

那不是这些方法的目的。它们用于处理用于打开您的应用的URL,而不是您在UIWebView中打开的任何URL。

您应该查看UIWebView的委托方法

特别

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

关于ios - 带有Phonegap 1.6.0的iOS handleOpenURL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10192448/

10-11 10:35
查看更多