从打包为原生iOS应用的Web应用打开外部链接

Mar*_*ark 2 web-applications ios sencha-touch sencha-touch-2

我的移动应用程序(使用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;
}
Run Code Online (Sandbox Code Playgroud)

如何使用Sencha Touch原生包装?

小智 8

我使用它在Mobile Safari或新窗口中打开链接.适用于原生iOS包装和网络应用程序:

function externalLink(link) {
try{
    Ext.device.Device.openURL(link);
}catch(err) {
    window.open(link, '_blank');
}
}
Run Code Online (Sandbox Code Playgroud)