webview+h5这种混合开发最近很火,其中最重要的大概就是java代码和js的交互了,刚接触这东西两天,写写收获。

新建一个assets文件夹,要与res这个文件夹同级,其中存放web项目。

先看android端

初始化webview

// 设置支持JavaScript等

webView = (WebView) findViewById(R.id.webView);

settings = webView.getSettings();

settings.setJavaScriptEnabled(true);

settings.setCacheMode(WebSettings.LOAD_DEFAULT); //缓存

settings.setDomStorageEnabled(true); //使用localStorage则必须打开

settings.setDatabaseEnabled(true);

settings.setAppCacheEnabled(true);

settings.setAllowFileAccess(true);

settings.setSupportZoom(true);

settings.setBuiltInZoomControls(true);

settings.setRenderPriority(WebSettings.RenderPriority.HIGH); //提高渲染优先级

settings.setBlockNetworkImage(false); //把图片放在最后渲染

webView.setWebChromeClient(new WebChromeClient());

webView.addJavascriptInterface(new Object() {

@JavascriptInterface

public void onUseCamera() {

//use system camera

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);

}

}, "camera");

webView.addJavascriptInterface(new Object() {

@JavascriptInterface

public String onGetPic() {

return file.getAbsolutePath();

}

}, "getPicture");

webView.loadUrl("file:///android_asset/login_content.html");

这里执行了点击h5中的按钮,调用系统相机的操作,onActivityResult就不写了,网上一大堆,不过需要注意,onactivityResult中要有

webView.loadUrl("javascript:getPic(" + ")");这样一句代码

。其中名字为camera的javascrptInterface是调用照相机,getPicture的是返回照片路径给js。

下面就是js了

function useCamera(){

window.camera.onUseCamera();

}

function getPic(){

var filePath = window.getPicture.onGetPic();

alert(filePath);

document.getElementById("testImage").src=filePath;

}

主要就是这样的两个方法,其中useCamera是要在html的button的onclick中调用,getPic是在上面的onActivityForResult中调用,通过文件路径更改id是testImage的图片。

这样直接传文件路径在web项目部署在服务器时是访问不到的,这个应该有解决方案,可惜我没有找到。还有个问题待解决,传一个string的文件路径没问题,但是如果直接传File类型的文件时,js死活都识别不出文件来,目测应该用h5的FileReader进行操作,可惜我又没成功。。。以上

Atitit.js获取上传文件全路径

Atitit.js获取上传文件全路径 1. 默认的value只能获取文件名..安全原因.. 1 2. Firefox浏览器的读取 1 3. Html5 的file api 2 4. 解决方法::使用a ...

JS获取上传文件的绝对路径,兼容IE和FF

js获取上传文件内容

js 获取上传文件的字节数及内容

上传文件 :

Android端通过HttpURLConnection上传文件到server

Android端通过HttpURLConnection上传文件到server 一:实现原理 近期在做Androidclient的应用开发,涉及到要把图片上传到后台server中.自己选择了做Sprin ...

js获取上传文件的绝对路径

在html中

随机推荐

ASP.NET MVC5----基本用法

由于之前在项目中也使用MVC进行开发,但是具体是那个版本就不是很清楚了,但是我觉得大体的思想是相同的,只是版本高的在版本低的基础上增加了一些更加方便操作的东西.下面是我学习ASP.NET MVC5高级 ...

用SQL语句建库建表建约束(用SQl语句在指定盘符创建文件夹)

一 :创建数据库 创建一个数据文件和一个日志文件(MySchool) create database MySchoolon primary      --默认属于primary主文件组,可省略(--数 ...

.net 应用迁移到Mono 工具 (Moma)

Mono Migration Analyzer (Moma) 是一个用于开发者使用的MS .net下开发的应用程序迁移到Mono平台的不兼容性检测工具.工具通过分析.dll或者.exe程序集的代码是否 ...

Linux - wxWidgets安装和编译HelloWorld

安装参考http://codelite.org/LiteEditor/WxWidgets30Binaries#toc2 源 /etc/apt/source.list deb http://repos. ...

CTG

服务端:一.修改IP地址AIX上CICS REGION的目录/var/cics_regions/your_region_name/database/LD二.修改文件LD.stanza中的IP地址三. ...

HDU 2328 POJ 3450 KMP

题目链接:  HDU http://acm.hdu.edu.cn/showproblem.php?pid=2328 POJhttp://poj.org/problem?id=3450 #include ...

hdu 4945 2048 (dp+组合的数目)

2048 Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submi ...

Bootstrap3 表格-带边框的表格

添加 .table-bordered 类为表格和其中的每个单元格增加边框.

service相关

本篇仍以问题为驱动 一.什么时Service? Service是Android程序中四大基础组件之一,它和Activity一样都是Context的子类,只不过它没有UI界面,是在后台运行的组件.Ser ...

Android BroadcastReceiver解析

目录   示意图 1. 定义 即 广播,是一个全局的监听器,属于Android四大组件之一 Android 广播分为两个角色:广播发送者.广播接收者 2. 作用 监听 / 接收 应用 App 发出的广 ...

js 访问android 路径,Android与JS进行交互传文件路径相关推荐

  1. Android手机之间不消耗流量互传文件

    Android手机之间不消耗流量互传文件 这是一个我们做的项目,已在Github开源,点击链接查看. Android手机之间不消耗流量互传文件 安卓面对面文件快传

  2. SpringBoot部署项目到Linux上传文件路径问题

    SpringBoot部署项目到Linux上传文件路径问题 使用项目相对路径上传到话会上传到linux服务器到/tmp 临时文件目录中,但是问题是还会报异常 Caused by: java.io.Fil ...

  3. oppo文件管理android在哪里,OPPO手机中缓存视频文件路径在哪里查看?怎么查看?

    相信大家都有过这样的经历:通过视频程序下载的视频只能在程序中播放,手机存储里面是看不到文件的.有时候想找到文件分享给其他伙伴都不行,那么OPPO手机中缓存视频文件路径在哪里查看?怎么查看?下面小编就为 ...

  4. 不借助js插件和flash实现不跳转上传文件

    1.html页面代码 <input type="button" id="uploadBtn" value="选择文件"> < ...

  5. egg.js ajax上传文件,egg.js 通过 form 和 ajax 两种方式上传文件并自定义目录和文件名...

    一.需求 egg.js 的文件上传个人觉得很一般,内置的 multipart 插件并不怎么好用. egg-multipart 也是基于 co-busboy 实现的. egg 官方给的文件上传的示例地址 ...

  6. linux的ftp轮询上传文件,Android中实现异步轮询上传文件

    前言 前段时间要求项目中需要实现一个刷卡考勤的功能,因为涉及到上传图片文件,为加快考勤的速度,封装了一个异步轮询上传文件的帮助类 效果 先上效果图 设计思路 数据库使用的框架是GreenDao,一个非 ...

  7. php获取上传文件路径 fakepath,JavaScript_js获取上传文件的绝对路径实现方法,在html中input type=file - phpStudy...

    js获取上传文件的绝对路径实现方法 在html中 function upload() { var filename = document.getElementById("importFile ...

  8. 百度 UEditor--自定义上传文件路径及读取文件

    jsp中替换掉上传和预览图片的URL 注意第一句判断,注意要用项目的相对URL return '/sirdifoa/kentra/file/uploadImage.do'; 1 2 3 4 5 6 7 ...

  9. mac怎么用c语言写文件路径,Mac 中使用os模块更改文件路径

    cmd+opt+c 复制路径 path='/Applications/MAMP/htdocs/python/day04model/' import sys import os sys.path.app ...

最新文章

  1. java 界面线性布局_怎么用java代码写一个线性布局;布局里面有两个按钮是水平的...
  2. 使用百度云服务器BCC搭建网站,过程记录
  3. ai怎么让图片任意变形_想一键提取图片文字,有什么好的文字识别软件/APP推荐吗?...
  4. origin对数据进行操作
  5. 漫谈Windows共享内存
  6. adams怎么做往复运动_关于HiFi | 在家里听音乐看电影,喇叭应该怎么选?
  7. 编程语言EF速度测试(4):nsieve-bits
  8. 给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。(C++实现,非常简单明了)
  9. Swift实现LRU缓存淘汰算法
  10. c246芯片组服务器主板,支持Xeon E-2100系列:ASRock 华擎 发布 C246M WS 主板
  11. H5网页漫画小说苹果cms模板\支持对接公众号\支持三级分销
  12. 张尧浠:美股反弹避险情绪降温、黄金迎美零售看回撤力
  13. wed标准的基础知识
  14. WebSocket长连接因为网络波动而导致客户端的“假离线”---问题发现、分析到解决
  15. Python生成标签云/词云
  16. 推流拉流RMTP方案:Nginx+ffmpeg/obs+vlc/h5
  17. Graphite简介
  18. word表格和后面的文字间距太小
  19. iOS开发人员:事实上你还有非常多东西须要学
  20. Virtual box中win7分辨率问题解决

热门文章

  1. 百度成为“数字中国”建设核心推动力
  2. 今日头条们:一边道歉一边做大
  3. 开发者容易陷入的 50 大误区!
  4. MySQL高可用之主备同步:javafor循环乘法表
  5. java中的龟兔赛跑代码_有关JAVA编写龟兔赛跑的游戏的问题。求助……
  6. java jsp 图片上传_jsp 图片上传代码
  7. python写爬虫4-多线程爬虫(采集58出租房信息)_python实现多线程爬虫
  8. 怎么在虚拟机上安装linux mint,如何在VirtualBox上安装Linux Mint?
  9. 学习编程你要记住以下几点
  10. influxdb入库mysql_InfluxDb(3)基本操作