【问题标题】:Android application is stuck on links in Android WebviewAndroid 应用程序卡在 Android Webview 中的链接上
【发布时间】:2017-02-17 06:10:55
【问题描述】:

背景

我正在制作一个使用 Quora 链接的应用程序所有链接(个人资料、答案、主题、登录除外)仅在我的应用程序中打开。

问题

  • 有一个选项“在应用程序中打开”,我想删除它 Option.单击十字按钮不起作用。

  • 用户无法登录 Quora ,登录链接未打开。

在这两种情况下,应用程序都卡住了。我尝试了 WebView 客户端解决方案,即 工作正常,但要签名以防万一它不工作。

【问题讨论】:

    标签: android web-applications login android-webview quora


    【解决方案1】:

    您需要两个要求:

    • 隐藏网站元素(这里是“在应用程序中打开”按钮)
    • 网站中元素的禁用事件(这里是登录点击)

    您可以在 WebViewClient 类中找到解决方案:

    webview.setWebViewClient(new WebViewClient() {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            if(!url.equals(currentUrl)){ //currentUrl is url that signin with navigated.
                view.loadUrl(url);  
            }
            return true;
        }
        @Override
        public void onPageFinished(WebView view, String url)
        {
            // hide element by class name
            webview.loadUrl("javascript:(function() { " +
                    "document.getElementsByClassName('your_class_name')[0].style.display='none'; })()");
            // hide element by id
            webview.loadUrl("javascript:(function() { " +
                    "document.getElementById('your_id')[0].style.display='none';})()");
    
        }
    });
    

    【讨论】:

    • 如何找到类名?我的意思是该元素没有出现在浏览器中,所以我如何检查以找出类名
    • 你加载的url,你可以在浏览器中打开或者从webview获取html代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-29
    • 1970-01-01
    • 2014-06-24
    • 2023-03-31
    • 1970-01-01
    • 2012-11-12
    相关资源
    最近更新 更多