从WebView

时间:2017-10-17 19:00:01

标签: android android-webview nativescript

这是用NativeScript(Javascript)编写的,但它直接取自我在SO上找到的android解决方案,用于在android WebView中打开不同的url方案。

但是,我认为我找到的解决方案是打开例如fb://me:// tel://等,而不是intent://链接。

web.android.getSettings().setJavaScriptEnabled(true);

let webViewClient = android.webkit.WebViewClient.extend({
    shouldOverrideUrlLoading : function(view, url){

        if( url.getUrl().getScheme().indexOf('http') != -1 ){
            return false;
        }

        // Otherwise allow the OS to handle things like tel, mailto, etc.
        let intent = new android.content.Intent(android.content.Intent.ACTION_VIEW, android.net.Uri.parse(url.getUrl()));
        application.android.currentContext.startActivity( intent );
        return true;                    
    }
})

web.android.setWebChromeClient(new android.webkit.WebChromeClient());
web.android.setWebViewClient(new webViewClient());

web.android.loadUrl("https://example.com"); 

我的应用程序侦听打开它的意图,并对提供给它的参数进行操作。当有人点击网站上的特定按钮时,通常会通过手机浏览器打开该应用。这是正常的。

但是,我在应用程序中有一个WebView导向该网站。当我第一次尝试点击此处的按钮时,出现以下错误net::ERR_UNKNOWN_URL_SCHEME

使用上述解决方案,应用程序突然停止工作,我得到一个问题,重新启动应用程序。

如果我更改以下行:

let intent = new android.content.Intent(android.content.Intent.ACTION_VIEW, android.net.Uri.parse(url.getUrl()));

为:

let intent = new android.content.Intent(android.content.Intent.ACTION_VIEW, url.getUrl());

我收到以下错误:No Activity found to handle Intent { act=android.intent.action.VIEW dat=intent://user/random launchParam=MultiScreenLaunchParams....}

有小费的人吗?谢谢。

0 个答案:

没有答案