Android WebChrome 客户端 Promts/Opens Link 在浏览器而不是 WebView
Posted
技术标签:
【中文标题】Android WebChrome 客户端 Promts/Opens Link 在浏览器而不是 WebView【英文标题】:Android WebChrome Client Promts/Opens Link in browser rather than WebView 【发布时间】:2019-02-05 20:11:15 【问题描述】:在启动活动时,webview 应该加载指定的 url,但在模拟器中它会启动本机浏览器,在物理设备上它会提示在浏览器中打开 url。
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_webview);
WebView wv = findViewById(R.id.my_webview);
WebSettings webSettings = wv.getSettings();
wv.setWebChromeClient(new WebChromeClient());
webSettings.setjavascriptEnabled(true);
wv.loadUrl("http://google.com");
尝试获取它,以便 webview 既不会在本机浏览器中启动,也不会提示用户在浏览器中打开。如果单击,所有嵌入的链接也应保留在 web 视图中。
【问题讨论】:
【参考方案1】:我认为你必须实现shouldOverrideUrlLoading()
方法:
shouldOverrideUrlLoading(WebView view, String url)
view.loadUrl(url);
return false;
【讨论】:
【参考方案2】:如果您不将 WebViewClient 添加到 WebView 实例,则会发生这种情况。为了在同一个 WebView 中启用导航,您需要将 WebViewClient 设置为您的 WebView 实例 wv。添加以下行:
wv.setWebViewClient(new WebViewClient());
【讨论】:
所以我添加了该行并保留该行 wv.setWebChromeClient(new WebChromeClient()); 是的。设置两个客户端。 我假设这解决了您的问题。您能否将答案标记为已接受?如果还没有,请告诉我。以上是关于Android WebChrome 客户端 Promts/Opens Link 在浏览器而不是 WebView的主要内容,如果未能解决你的问题,请参考以下文章
Android中的consumer-rules.pro和proguard-rules.pro有啥区别?
[Android Pro] Android TypedValue.applyDimension()的用法