【问题标题】:Android WebView opening links in default browser - Open links in appAndroid WebView 在默认浏览器中打开链接 - 在应用中打开链接
【发布时间】:2017-09-19 23:52:04
【问题描述】:

我创建了一个带有 WebView 属性的 android 应用程序,一切都很好,但唯一的问题是,当我单击该 WebView 中的任何链接时,它会自动转到默认的 Web 浏览器。但我只想在我的应用程序 Web 视图中打开链接。这是我的代码:

mWebView = (WebView) findViewById(R.id.activity_main_webview);
    WebSettings webSettings = mWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    mWebView.loadUrl("http://plan.regenbogen-gesamtschule.de/vertretung/schueler/subst_001.htm");
    mWebView.setWebViewClient(new MyAppWebViewClient(){
        @Override
        public void onPageFinished(WebView view, String url) {
            //hide loading image
            findViewById(R.id.progressBar1).setVisibility(View.GONE);
            //show webview
            findViewById(R.id.activity_main_webview).setVisibility(View.VISIBLE);
        }});

【问题讨论】:

    标签: android webview android-webview


    【解决方案1】:

    如果您在 MyAppWebViewClient 中覆盖 shouldOverrideUrlLoading(...) 并返回 false,您的 web 视图应该会自动尝试加载 url。文档说明如下:

    返回:如果宿主应用程序想要离开当前的 WebView 并自己处理 url,则返回 true,否则返回 false。

    请参阅shouldOverrideUrlLoading(...) 文档。

     mWebView.setWebViewClient(new MyAppWebViewClient(){
    
        @Override
        boolean shouldOverrideUrlLoading (WebView view, String url) {
            return false;
        }
    
        @Override
        public void onPageFinished(WebView view, String url) {
            //hide loading image
            findViewById(R.id.progressBar1).setVisibility(View.GONE);
            //show webview
            findViewById(R.id.activity_main_webview).setVisibility(View.VISIBLE);
        }});
    

    【讨论】:

    • 其实我是 Android 新手,你能解释一下你的意思是什么吗?我没那么清楚。谢谢。
    • 非常感谢您对我的帮助。
    猜你喜欢
    • 2011-07-26
    • 1970-01-01
    • 2011-05-12
    • 2015-11-01
    • 2014-03-12
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多