我的移动应用程序(使用Sencha Touch 2创建)上有一个target="_blank"
属性的链接。该应用程序打包为本机iOS应用程序。问题是,链接没有按预期在Safari中打开,而是在应用程序内打开。在新的浏览器窗口中,在Safari中打开链接非常重要。我怎样才能做到这一点?
我应该补充说我正在使用Sencha的本地打包器(sencha包)。默认行为似乎在同一webview中打开新窗口。但我需要在移动Safari中打开它们。
在Xcode项目中,我可以执行以下操作:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
[[UIApplication sharedApplication] openURL:request.URL];
return NO;
}
return YES;
}
如何使用Sencha Touch原生包装做到这一点?
答案 0 :(得分:8)
我用它在Mobile Safari或新窗口中打开链接。适用于原生iOS包装和网络应用程序:
function externalLink(link) {
try{
Ext.device.Device.openURL(link);
}catch(err) {
window.open(link, '_blank');
}
}
答案 1 :(得分:3)
我还没有发现使用sencha原生包装的方法。
但是将应用程序包装在一个手机带中并在Xcode中编译应用程序,并将所需的URL添加到phonegap.plist中的ExternalHost数组中应该可以正常工作吗?
另外,(仍然在Phonegap解决方案上)我认为在App中打开AppDelegate.m来打开链接也可以正常工作。
答案 2 :(得分:1)
以编程方式(Javascript)打开Mobile Safari中的链接。 如果你不能使用标准的html链接,但你必须使用Javascript:
,这是理想的选择var a = document.createElement("a");
a.setAttribute('href', facebook);
a.setAttribute('target', '_blank');
a.click();