判断是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还是浏览器的主要内容,如果未能解决你的问题,请参考以下文章

设置webview的浏览器标识 User-Agent

android webview如何去除网页边缘白边?想其他浏览器一样?

使用 PHP / Javascript 检测应用内浏览器 (WebView)

js如何判断当前运行环境是ios webview还是android webview

UX2内核浏览加速技术纲要[带你解决WebView卡顿]

在 Android 浏览器或 WebView 内部检测