Android WebView或手机浏览器打开连接问题解决办法总结

Android WebView或手机浏览器打开连接问题解决办法总结

1.通常情况下 大家可能都想使用WebView打开网页内部链接而不想再调用手机浏览器,

我们可以通过以下两种方法实现:

(1)为WebView设置一个WebViewClient,并重写shouldOverrideUrlLoading(WebView view, String url)方法。

class MyWebViewClient extends WebViewClient { 

  @Override 

  public boolean shouldOverrideUrlLoading(WebView view, String url){ 

  // 重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边 

    view.loadUrl(url); 

    return true; 

    } 

}

(2)为WebView设置一个WebViewClient,并重写onPageStarted(WebView view, String url, Bitmap favicon)方法。

class MyWebViewClient extends WebViewClient { 

  @Override 

public void onPageStarted(WebView view, String url, Bitmap favicon) { 

  // TODO Auto-generated method stub 

  super.onPageStarted(view, url, favicon); 

} 

}

这两种方法其实都是让参数view(WebView)加载参数url从而避免手机浏览器加载url,第一种方式更常用一些。

2.但有些情况下  我们可能想用WebView打开大部分链接,而有些链接我们希望调用手机浏览器来打开,我最近的一个项目中就有这样的需求。这样其实也很简单,我们只需要对上面第一种方法加以修改即可。

class MyWebViewClient extends WebViewClient { 

  @Override 

  public boolean shouldOverrideUrlLoading(WebView view, String url) { 

  // 重写此方法表明点击网页里面的链接还是在当前的webview里跳转,不跳到浏览器那边 

      if (openWithWevView(url)) { 

       view.loadUrl(url); 

      }else{ 

       Uri uri = Uri.parse(url); //url为你要链接的地址 

       Intent intent =new Intent(Intent.ACTION_VIEW, uri); 

       startActivity(intent); 

      } 

      return true; 

}

其中openWithWevView(url)是自己写的一个方法,用来判断是否用WevView打开该链接。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • Android WebView 不支持 H5 input type="file" 解决方法

    最近因为赶项目进度,因此将本来要用原生控件实现的界面,自己做了H5并嵌入webview中.发现点击H5中 input type="file" 标签 不能打开android资源管理器. 通过网络搜索发现是因为 android webview 由于考虑安全原因屏蔽了 input type="file" 这个功能 . 经过不懈的努力,以及google 翻译的帮助 在 stackoverflow 中找到了解决的方法. 具体可以理解为 重写webview 的WebChrome

  • Android WebView自定义长按选择实现收藏/分享选中文本功能

    效果图(1.3M) 一.前言 ** 戳这里可以去DEMO,来吧 ** 相信刚接触android不久的同志们,在面对产品提出的 : "自定义WebView页面中,长按文本的弹出选项.点击选择后,分享.转发.收藏选择文本" 这样的需求时,第一反应大部分是:这是系统行为,如果实现需要在web端实现. 但是web端实现的局限性太大,曾经也有过监听系统粘贴板,在用户点击复制的时候实现其他的逻辑,但是这样用户体验不好,所以自定义WebView中长按的弹出菜单,并在点击时返回选中文本的小控件闪亮登场

  • Android webview使用方法总结

    Android webview使用方法总结            这里对Android webview的几种用法进行了总结,提供了九种用法,都要简单实例,大家可以参考下: 1. 打开网页时不调用系统浏览器, 而是在本WebView中显示: mWebView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.

  • Android 5.1 WebView内存泄漏问题及快速解决方法

    问题背景 在排查项目内存泄漏过程中发现了一些由WebView引起的内存泄漏,经过测试发现该部分泄漏只会出现在android 5.1及以上的机型.虽然项目使用WebView的场景并不多,但秉承着一个泄漏都不放过的精神,我们肯定要把它给解决了. 遇到的问题 项目中使用WebView的页面主要在FAQ页面,问题也出现在多次进入退出时,发现内存占用大,GC频繁.使用LeakCanary观察发现有两个内存泄漏很频繁: 我们分析一下这两个泄漏: 从图一我们可以发现是WebView的ContentViewCo

  • Android 解决WebView无法上传文件的问题

    Android 解决WebView无法上传文件的问题 Android原生的WebView并不支持上传文件,需要我们自己实现相应的方法.于是我把工作中的相关代码记录下来.下次直接拿来用就行了.一点一滴都是经验. 1.需要定义三个变量 private ValueCallback<Uri[]> uploadMessageAboveL; private final static int FILE_CHOOSER_RESULT_CODE = 10000; private ValueCallback<

  • Android中解决WebView上下滑动监听问题

    有些时候我们需要监听webview的滚动事件,但WebView没有直接监听滑动的方法,看WebView的源码则会发现有一个protected void onScrollChanged(int l, int t, int oldl, int oldt)方法. 这个方法.是受到保护的所以我们无法直接使用,所以我们写一个加强的WebView,重写onScrollChanged方法并利用接口回调. public class NewWebView extends WebView{ private OnSc

  • Android WebView的详解及实例

    Android WebView的详解       Android WebView在android平台上是一个特殊的View, 他能用来显示网页,这个类可以被用来在你的app中仅仅显示一张在线的网页,还可以用来开发浏览器. 在Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件.WebKit是Mac OS X v10.3及以上版本所包含的软件框 架(对v10.2.7及以上版本也可通过软件更新获取). 同时,WebKit也是Mac OS X的Safa

  • Android WebView或手机浏览器打开连接问题解决办法总结

    Android WebView或手机浏览器打开连接问题解决办法总结 1.通常情况下 大家可能都想使用WebView打开网页内部链接而不想再调用手机浏览器, 我们可以通过以下两种方法实现: (1)为WebView设置一个WebViewClient,并重写shouldOverrideUrlLoading(WebView view, String url)方法. class MyWebViewClient extends WebViewClient { @Override public boolean

  • Android 监听手机GPS打开状态实现代码

    Android 监听手机GPS打开状态实现代码 GPS_Presenter package com.yiba.core; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.location.LocationManager; /** *

  • Android SDK Manager更新、下载速度慢问题解决办法

    Android SDK Manager更新.下载速度慢问题解决办法 解决Android SDK Manager更新.下载速度慢 打开目录 C:\Windows\System32\drivers\etc,在目录下有hosts文件 打开文件添加如下文本 203.208.46.146 www.google.com 74.125.113.121 developer.android.com 203.208.46.146 dl.google.com 203.208.46.146 dl-ssl.google.

  • Android 将view 转换为Bitmap出现空指针问题解决办法

    Android 将view 转换为Bitmap出现空指针问题解决办法 在做Android 项目的时候,有时候可能有这样的需求,将一个View 或者一个布局文件转换成一个Bitmap  对象. 方法其实大都差不多.但这其中有一些小细节需要注意一下.最近在项目中用到了这个功能,现在分享一下,希望能帮助到遇到果这个 问题的人. 首先是转换 的代码: /** * 将View(布局) 转换为bitmap * @param view * @return */ public static Bitmap cre

  • Android 使用volley过程中遇到的问题解决办法

    Android 使用volley过程中遇到的问题解决办法 本文主要介绍使用 volley 过程中遇到的问题,错误提示: com.android.volley.NoConnectionError: java.io.InterruptedIOException",内容加载失败,问题出在重复调用 queue.start() 方法. 错误提示:com.android.volley.NoConnectionError: java.io.InterruptedIOException",然后就内容加

  • Android Studio控制台出现中文乱码(方框)问题解决办法

    Android Studio控制台出现中文乱码(方框)问题解决办法 最近遇到个恶心的事儿,就使用死丢丢的时候,发现怎么我的控制台输出中文都显示方框???别人都没事,恶心坏我了.经过各种百度,终于找到解决办法,办法也是够恶心的.我们一起来看看吧. 乱码显示结果如下: 解决办法很简单,设置字体为YaHei即可.(可能之前下载的苹果编程字体不支持吧) 修改后结果可以正常显示了 再次简单做个记录, 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • Android studio 下的APK打包失败问题解决办法

    Android studio 下的APK打包失败问题解决办法 今天遇到了一个奇怪的问题,本来在Android studio 1.4上运行的好好的程序,到了我更新完的Android studio 2.1上就打包失败了,但是用调试机直接运行则没问题. 最后在app下的build.gradle下加入了这样的一段代码就通过了: lintOptions { abortOnError false checkReleaseBuilds false // 防止在发布的时候出现因MissingTranslatio

  • Android ListView与getView调用卡顿问题解决办法

    Android ListView与getView调用卡顿问题解决办法 解决办法1,设置ListView高度为固定值或者match_parent/ifll_parent @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { Log.d("onMeasure", "onMeasure"); isOnMeasure = true; super.onMeasure(

  • Android studio so库找不到问题解决办法

    Android studio so库找不到问题解决办法 问题: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[ zip file "/data/app/com.bb.aaaa.nfcandimg-1/base.apk", zip file "/data/app/com.bb.aaaa.nfcandimg-1/split_lib_dependencies_apk.apk&qu

  • Android 中TextView的使用imageview被压缩问题解决办法

    Android 中TextView的使用imageview被压缩问题解决办法 看下运行效果图: 今天解bug的时候遇到一个奇怪的问题:listview的item由一个textview和一个imageview组成,父布局是线性水平排列.我的本意是imageview显示相同的图片,textview显示文本,但是运行程序后发现,当某个textview的文本较多时,imageview会被压缩,刚开始没注意,检查代码了好久. 代码示例如下: <!--文本少的item--> <LinearLayou

随机推荐