3

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

我在 Android 设备上一切正常,但我很难找到如何使用 JavaScript 在设备的默认浏览器中打开我的应用程序的链接。

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

我尝试过使用 window.open(' http://example.com ', '_blank'),我也尝试过 '_system',但无济于事。

4

1 回答 1

0

同样在这里。所有 href 和 window.open 调用都在 WebView 中打开。

我们可以使用在 Cordova 中也可以使用的解决方法:拦截本机 Java 代码中的 URL。

首先根据您的需要创建一个自定义 XWalkResourceClient 来拦截您的 url:

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);
于 2016-01-27T12:43:19.590 回答