判断是webview还是浏览器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了判断是webview还是浏览器相关的知识,希望对你有一定的参考价值。
参考技术A 1.通常情况下大家可能都想使用WebView打开网页内部链接而不想再调用手机浏览器,我们可以通过以下两种方法实现:
(1)为WebView设置一个WebViewClient,并重写shouldOverrideUrlLoading(WebView view, String url)方法。
classMyWebViewClientextendsWebViewClient@OverridepublicbooleanshouldOverrideUrlLoading(WebViewview,Stringurl)
//重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边
view.loadUrl(url);returntrue;(2)为WebView设置一个WebViewClient,并重写onPageStarted(WebView view, String url, Bitmap favicon)方法。
classMyWebViewClientextendsWebViewClient@OverridepublicvoidonPageStarted(WebViewview,Stringurl,Bitmapfavicon)
//TODOAuto-generatedmethodstubsuper
.onPageStarted(view,url,favicon);这两种方法其实都是让参数view(WebView)加载参数url从而避免手机浏览器加载url,第一种方式更常用一些。
2.但有些情况下
我们可能想用WebView打开大部分链接,而有些链接我们希望调用手机浏览器来打开,我最近的一个项目中就有这样的需求。这样其实也很简单,我们只需要对上面第一种方法加以修改即可。
classMyWebViewClientextendsWebViewClient@OverridepublicbooleanshouldOverrideUrlLoading(WebViewview,Stringurl)
//重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边if(openWithWevView(url))
view.loadUrl(url);else
Uriuri=Uri.parse(url);
//url为你要链接的地址
startActivity(intent);returntrue;其中openWithWevView(url)是自己写的一个方法,用来判断是否用WevView打开该链接。本回答被提问者和网友采纳
APP内跳转链接用INTENT,但是用系统浏览器,在内部还是要webview
public void clickKefu() {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.baidu.com"));
getActivity().startActivity(intent);
}
以上是关于判断是webview还是浏览器的主要内容,如果未能解决你的问题,请参考以下文章
android webview如何去除网页边缘白边?想其他浏览器一样?
使用 PHP / Javascript 检测应用内浏览器 (WebView)