webview中的img标签加载Android本地的图片
在网上查了很多教程,感觉很麻烦,各种方法,最后最忌实践很简单,主要是两步:
WebSettings webSettings=webView.getSettings();//允许webview对文件的操作webSettings.setAllowUniversalAccessFromFileURLs(true);webSettings.setAllowFileAccess(true);webSettings.setAllowFileAccessFromFileURLs(true);
其次是路径的设置
String path= "file://"+Environment.getExternalStorageDirectory()+ File.separator+"123.jpg";
一定是file:///开头,注意是三个斜杠
下面是结果:
执行代码之前
执行代码之后
html代码
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"><title>Title</title>
</head>
<body>
<img id="img" alt="上海鲜花港 - 郁金香" style="width: 100%;height: 100%"/>
<script>
function aa(path){
alert(path);var img=document.getElementById("img");img.src=path;
}</script>
</body>
</html>
Android代码
package com.example.a5.myapplication;import android.os.Environment;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;import java.io.File;public class MainActivity extends AppCompatActivity {private WebView webView;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);webView= (WebView) findViewById(R.id.webView);WebSettings webSettings=webView.getSettings();//允许webview对文件的操作webSettings.setAllowUniversalAccessFromFileURLs(true);webSettings.setAllowFileAccess(true);webSettings.setAllowFileAccessFromFileURLs(true);//用于js调用AndroidwebSettings.setJavaScriptEnabled(true);//设置编码方式webSettings.setDefaultTextEncodingName("utf-8");webView.setWebChromeClient(new chromClient());//访问Android assets文件夹内的String url="file:///android_asset/test.html";//访问网页Html
// String url="http://192.168.1.121:8080/jsandroid/index.html";runWebView(url);}private class chromClient extends WebChromeClient{@Overridepublic void onProgressChanged(WebView view, int newProgress) {if(newProgress==100){//页面加载完成执行的操作String path= "file://"+Environment.getExternalStorageDirectory()+ File.separator+"123.jpg";String action="javascript:aa('"+path+"')";new AlertDialog.Builder(MainActivity.this).setMessage(action).show();runWebView(action);}super.onProgressChanged(view, newProgress);}}private void runWebView(final String url){runOnUiThread(new Runnable() {@Overridepublic void run() {webView.loadUrl(url);}});}
}
webview中的img标签加载Android本地的图片相关推荐
- img加载中显示loading,加载失败显示默认图片(React)
实现效果 完整代码 import { useRef, useState } from 'react'; import './index.less'; import errorImg from '@/c ...
- VC6中使用内存DC加载并显示JPG图片的注意事项
From: http://blog.csdn.net/boythl/article/details/3137446 今天在VC6中显示JPG图片,采用了内存DC缓存的方法刷新,但死活刷不出来,查了一下 ...
- Winform DataGridView中利用WebClient异步加载显示网络地址的图片
转载于:https://www.cnblogs.com/sjcatsoft/archive/2008/11/21/1338448.html
- Android中使用x5内核加载网页的实现
前言 联系方式 背景 SDK下载 SDK集成 使用 代码实现 前言 由于是使用的腾讯浏览服务,所以这里大部分介绍的是官网的一些东西,不过自己会做一些复杂使用部分的实现,不至于像官网上介绍的笼统. 联系 ...
- vue项目中 img标签加载失败方法,onerror事件的两种方法
vue项目中 img标签加载失败方法 ?css 第一种方法 第二种方法 本人写的第一篇文章,希望对你有帮助 第一种方法 < img src="123" :οnerrοr=&q ...
- vue项目中 img标签加载失败(404)方法,@error事件
vue项目中 img标签加载失败方法,@error事件 @error="defImg" <img src="123" @error="defIm ...
- Android 中LayoutInflater(布局加载器)之介绍篇
本文出自博客Vander丶CSDN博客,如需转载请标明出处,尊重原创谢谢 博客地址:http://blog.csdn.net/l540675759/article/details/78099358 前 ...
- Flutter中举步维艰的WebView,终于实现了加载本地html
1.需求背景 实现一个不全屏的,支持加载本地html资源的webview 2.结论先行 选用了官方的webview_flutter.总结了下实践的过程,分析几个插件有如下特点: flutter_ina ...
- chromebook刷机_如何从Chromebook上的APK侧面加载Android应用
chromebook刷机 Chromebooks can now download and install Android apps from Google Play, and it works pr ...
最新文章
- 资料分享:送你一本《数据结构与算法JavaScript描述》电子书!
- 科研超级神器,摘要页一键链接关联论文
- 医学影像AI:全球市场展望
- 树形控件CTreeCtrl的使用详解(一)
- pytorch 之 加载不同形式的预训练模型
- 异常处理机制——panic 和 recover
- Mongo客户端MongoVUE的基本使用
- MySQL JDBC驱动程序如何处理准备好的语句
- CSS中属性个属性值怎么区分,[CSS] 详细解释 @media 属性与 (max
- TensorFlow构建二维数据拟合模型(1)
- 【nginx】nginx 负载均衡
- 微服务(接口)设计原则
- php7 findandmodify,node.js – (mongoose / promises)如何检查文档是否是使用带有upsert的findOneAndUpdate创建的...
- 五大常用算法之贪心算法
- c语言int转为dint,【转】IQMATH使用
- 2021年7月国产数据库排行榜:openGauss高歌猛进,GBase丢失第五
- C# 颜色和名称对照表
- 远程服务器登入信息,怎样查看服务器被远程登录的信息
- 电路及esd静电防护
- QQ登录获取unionID