使用下面的简单代码,我可以正确加载我的URL,但是,当尝试点击以 * mailto:whatsapp: 和 * tg:(电报)开头的html链接时,我会得到"ERR_UNKNOWN_URL_SCHEME"。
任何人都可以帮助我解决这个问题吗?不幸的是,我根本不知道Java:(
谢谢。
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class MainActivity extends Activity {
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.activity_main_webview);
// Force links and redirects to open in the WebView instead of in a browser
mWebView.setWebViewClient(new WebViewClient());
// Enable Javascript
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
// Use remote resource
mWebView.loadUrl("http://myexample.com");
}
}
6条答案
按热度按时间jaxagkaj1#
把这个代码放在你的mWebView中。setWebViewClient(new WebViewClient().它将完美地工作于所有的链接,如tel:,whatsapp:,**mailto:**等。
pgvzfuti2#
这对我有用
“webview.setWebViewClient(新建WebViewClient(){字符串当前URL;
ut6juiuv3#
mailto
链接将不会加载到您的webview
中。您必须在shouldOverrideUrlLoading
中进行检查,并使用intent
进行处理。类似问题Android Webview ERR_UNKNOWN_URL_SCHEME Error
rqcrx0a64#
您可以打开外部应用程序(Chrome)的URL来解决这个问题。
2wnc66cl5#
您必须在webview中设置客户端并将其传递给Intent
你可以有一个方法来检查是否安装了应用程序
13z8s7eq6#
您需要覆盖WebViewClient的
shouldOverrideUrlLoading
方法,在该方法中您可以自己控制链接传输。由于
html links that starts with mailto: whatsapp: and tg: (Telegram).
不是以"http://"或" https://"开头的常见URL,因此WebView无法将其解析到正确的位置,我们应使用Intent重定向URL。例如:
然后将WebViewClient设置为您的WebView,如下所示: