我正在使用HTML和JavaScript为Android设备创建应用。我正在使用Crosswalk(15.44.384.12)将其捆绑到一个Android应用程序中,该应用程序几乎创建了一个内置Web浏览器的Android应用程序,以运行我的应用程序。
我已经掌握了Android设备上的所有内容,但我很难找到如何使用JavaScript在设备的默认浏览器中打开我的应用中的链接。
如果我使用window.open(),它将只在我的应用程序中加载,这不是我想要的。
我尝试过使用window.open(' http://example.com',' _blank'),我也试过' _system',没有果。
答案 0 :(得分:0)
同样在这里。所有hrefs和window.open调用都在WebView中打开。
我们可以使用Cordova中可能的解决方法:拦截本机Java代码中的URL。
首先创建一个自定义XWalkResourceClient,根据您的需要截取您的网址:
XWalkResourceClient myResourceClient = new XWalkResourceClient(xWalkWebView){
...
@Override
public boolean shouldOverrideUrlLoading(XWalkView view, String url) {
if(url.contains("whatever")){
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
return true;
}
return super.shouldOverrideUrlLoading(view, url);
}
};
然后在您的活动中,您可以将该客户端设置为XWalk视图:
myXWalkWebView.setResourceClient(myResourceClient);