科尔多瓦: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/