在设备的默认浏览器中打开链接。 Crosswalk android应用程序

时间:2015-11-09 11:26:45

标签: javascript android hybrid-mobile-app crosswalk

我正在使用HTML和JavaScript为Android设备创建应用。我正在使用Crosswalk(15.44.384.12)将其捆绑到一个Android应用程序中,该应用程序几乎创建了一个内置Web浏览器的Android应用程序,以运行我的应用程序。

我已经掌握了Android设备上的所有内容,但我很难找到如何使用JavaScript在设备的默认浏览器中打开我的应用中的链接。

如果我使用window.open(),它将只在我的应用程序中加载,这不是我想要的。

我尝试过使用window.open(' http://example.com',' _blank'),我也试过' _system',没有果。

1 个答案:

答案 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);