首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决err_unknown_url_scheme问题?

如何解决err_unknown_url_scheme问题?
EN

Stack Overflow用户
提问于 2020-02-07 16:12:25
回答 1查看 391关注 0票数 2

MainActivity.Java

代码语言:javascript
复制
package com.example.neermaicom;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.WindowManager;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

import static android.content.Intent.*;

public class MainActivity extends AppCompatActivity {

private WebView webView;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    getSupportActionBar().hide();
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

    webView = findViewById(R.id.webview);
    webView.setWebViewClient(new WebViewClient()); // this will load site in our app
    webView.loadUrl("http://www.neermai.com");

    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
}

//This method require to use back button if want to go previous web page

@Override
public void onBackPressed() {

    if(webView.canGoBack()){
        webView.goBack();
    }else {
        super.onBackPressed();
    }
}

}

这是我现在的代码。工作正常。但只有当我通过点击社交媒体分享帖子时才会出现问题。上面写着net: err_unknown_url_scheme。请帮帮我。谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-02-07 16:24:42

以mailto:,whatsapp: not开头的HTML链接以"http://""https://"开头,所以WebView无法将其解析到正确的位置,我们应该使用intent来重定向url。

因此,使用setWebViewClient访问您的WebView,如下所示,并覆盖shouldOverrideUrlLoading

代码语言:javascript
复制
webView.setWebViewClient(new WebViewClient() {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url == null || url.startsWith("http://") || url.startsWith("https://")) return false;

        try {
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
            view.getContext().startActivity(intent);
            return true;
        } catch (Exception e) {

            return true;
        }
    }
    });

你就可以走了。

希望这能对你有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60109439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档