2 wxqandeva wxqandeva 于 2016.03.23 23:24 提问

android webview中图片 长按点击保存本地 部分手机不能实现。

代码如下

private String imgurl = "";

/***
 * 功能:长按图片保存到手机
 */
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
    super.onCreateContextMenu(menu, v, menuInfo);
    MenuItem.OnMenuItemClickListener handler = new MenuItem.OnMenuItemClickListener() {
        public boolean onMenuItemClick(MenuItem item) {
            if (item.getTitle() == "保存到手机") {
                new SaveImage().execute(); // Android 4.0以后要使用线程来访问网络
            } else {
                return false;
            }
            return true;
        }
    };
    if (v instanceof WebView) {
        WebView.HitTestResult result = ((WebView) v).getHitTestResult();
        if (result != null) {
            int type = result.getType();
            if (type == WebView.HitTestResult.IMAGE_TYPE || type == WebView.HitTestResult.SRC_IMAGE_ANCHOR_TYPE) {
                imgurl = result.getExtra();
                menu.setHeaderTitle("提示");
                menu.add(0, v.getId(), 0, "保存到手机").setOnMenuItemClickListener(handler);
            }
        }
    }
}

项目中的网页的网址是接口得到的。里面有个图片需要保存到本地。保存本地的方法就不贴出来了。webview的设置应该也没问题,我debug了一下,发现问题应该就是出现在这段代码上。上面的type的值应该是5或者8的情况下才能弹出对话框。但是不能实现的手机type值是0。不知道为什么。但是我把网址换成像百度这样的网址就没有问题了。

2个回答

devmiao
devmiao   Ds   Rxr 2016.03.23 23:44
CSDNXIAON
CSDNXIAON   2016.03.30 11:20

webview长按保存图片
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android WebView Long Press长按保存图片到手机
private String imgurl = ""; /*** * 功能:长按图片保存到手机 */ @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextM
Android使用webView长按保存下载网络图片
最近发现在webView的setOnLongClickListener中可以获取到WebView.HitTestResult,根据获取的HitTestResult的Type来判断做不同的处理。通过判断Type的类型获取点击图片的url,然后把图片下载到本地,发送广播通知系统图库进行更新,在系统图库中查看下载的图片。运行Demo在网页中对图片做长按点击即可下载网络图片
长按 WebView 页面图片弹出对话框可以选择保存长按的图片到本地相册
http://gold.xitu.io/entry/5817f71abf22ec00689e4b8a/detail?utm_source=gold_browser_extension
Android webview长按图片保存到本地
// 长按点击事件 webView.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View view) { final WebView.HitTestResult h
ios uiwebview 长按图片,保存到本地相册
我们所要解决的问题如题目所示:ios中,长按Webview中的图片,将图片保存到本地相册。 解决方案:对load的html网页,执行js注入,通过在webview中执行js代码,来响应点击事件,通过js代码来模拟长按事件。发现图片的位置,获得图片的url链接,通过此链接获得图片,将此图片保存到本地相册。 js注入代码: static NSString* const kTouchJ
Android 的WebView长按保存图片
根据业务需要,WebView上经常会用到长按保存图片的功能,现在做一个Demo,希望能够帮到有用的童鞋。点哪里菜单就从哪里出来。so easy。 首先根据下面代码获取WebView上触发事件的位置坐标,用于弹出菜单的显示位置:mWebView.setOnTouchListener(listener);// 获取手指点击事件的xy坐标 View.OnTouchListener listener
Android实现在webview中长按图片弹出菜单保存图片
Android实现在webview中长按图片弹出菜单保存图片在项目中遇到一个保存webview中二维码图片的问题,做个笔记。 效果如图: 用到webview的三个方法: getHitTestResult()——Gets a HitTestResult based on the current cursor node getType()——Gets the type of t
Android长按保存图片
在做一个商城类App时,有个需求就是长按图片保存到本地图库,图片展示在了ViewPage和WebView中(图文混排展示商品详情的).所以分两部分来做,第一部分保存图片的方法,第二部分长按WebView时识别出来按的是哪一张图片,因为有很多张图片。保存图片的方法,两个参数,一个上下文环境和一个图片的url,使用时只需要把这两个参数获取到传递过来即可:public class SavePicByUrl
Android点击图片显示大图,长按保存网络图片到本地相册,单击返回。(GestureDetector)(RxJava)(Easypermissions)(AlertView)
前言周末写一个看图片的模块时,想实现类似微信那种查看图片的效果。于是,就自己尝试了一下。先看一下效果: 界面编写:界面就非常简单,一个线性布局,将其属性设置为horizontal,然后将ImageView设置为在界面的中间显示。<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.andr
Android WebView保存图片的方式(模仿网易图片下载逻辑)
目前我在实现WebView上图片保存的时候有两种解决方案,下面简单介绍吧。       方案一:使用registerForContextMenu菜单,效果图如下:          这个使用比较简单,步骤如下:  1.注册: 2.菜单添加条目: 3.处理点击事件,开始下载:(ps 这里就不实现下载了!)