Android用的是jsbridge.BridgeWebView。github链接:https://github.com/lzyzsd/JsBridge

js封装了一下方法(参考:JSbridge 在Vue的封装与交互):

let isAndroid = navigator.userAgent.indexOf('Android') > -1 || navigator.userAgent.indexOf('Adr') > -1;
let isiOS = !!navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);//执行回调函数 这是必须要写的,用来创建一些设置
function setupWebViewJavascriptBridge(callback) {//Android使用if (isAndroid) {//如果该对象已存在则直接执行if (window.WebViewJavascriptBridge) {callback(window.WebViewJavascriptBridge);} else {//否则添加事件监听再执行document.addEventListener('WebViewJavascriptBridgeReady',() => {callback(window.WebViewJavascriptBridge);},false);}console.log('tag,android');sessionStorage.phoneType = 'android';}//iOS使用if (isiOS) {if (window.WebViewJavascriptBridge) {return callback(window.WebViewJavascriptBridge);}if (window.WVJBCallbacks) {return window.WVJBCallbacks.push(callback);}window.WVJBCallbacks = [callback];var WVJBIframe = document.createElement('iframe');WVJBIframe.style.display = 'none';WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__';document.documentElement.appendChild(WVJBIframe);setTimeout(() => {document.documentElement.removeChild(WVJBIframe);}, 0);console.log('tag', 'ios');sessionStorage.phoneType = 'ios';}
}//注册回调函数,第一次连接时调用(进入H5页面) 初始化函数(android需要初始化,ios不用)
setupWebViewJavascriptBridge((bridge) => {console.log('tag,setupWebViewJavascriptBridge');if (isAndroid) {//初始化 一个无参数的handler供Android调用bridge.init((message, responseCallback) => {console.log('JS got a message', message);var data = {'Javascript Responds': 'Wee!'};responseCallback(data);});}
});export default {// js调APP方法 (参数分别为:app提供的方法名  传给app的数据  回调)callHandler(name, data, callback) {setupWebViewJavascriptBridge((bridge) => {bridge.callHandler(name, data, callback);});},// APP调js方法 (参数分别为:js提供的方法名  回调)registerHandler(name, callback) {setupWebViewJavascriptBridge((bridge) => {bridge.registerHandler(name, (data, responseCallback) => {callback(data, responseCallback);});});}
};

JS和Android互调(调用相机拍照)相关推荐

  1. Android 10调用相机拍照

    最近对以前的Android项目进行开发时,因为新的平板Android中系统版本为10,将旧项目的Android API升级为26.然后旧代码中的拍照权限失效,经过查询资料,发现权限并未打开,因此需要提 ...

  2. android intent拍照,Android通过Intent方式调用相机拍照取得图片

    Android通过Intent方式调用相机拍照取得图片 AndroidManifest.XML 权限设置: XML布局设置: 代码: public classMainActivityextendsAp ...

  3. Android调用相机拍照高清原图(兼容7.0)

    在安卓更新7.0的版本后,要调用相机拍照获取原图则需要先把拍摄后的内容保存到目录,然后再借助provider调出来显示,相比以前可以说十分繁琐,但为了摆脱马赛克画质的困扰,为了更好的用户体验,还是硬着 ...

  4. Android 调用相机拍照并保存

    不知不觉已经两年多已经没有写文章了,转眼间大学都要毕业了,也是有些唏嘘,今后会定期发表些文章,应该会以Android为主,也会夹杂其他领域的一些文章. 话不多说,今天做了一个小demo,就是调用相机拍 ...

  5. Android中拍照完就给图片加水印,Android调用相机拍照并添加水印

    最近项目提出新需求,要求在拍照后在图片上添加用户信息的水印,so,楼主重新整理封装了一个简单的拍照+水印的工具类,需求不同,仅供参考.文件操作及权限做了适配,支持androidN及以上版本,放心使用. ...

  6. android 调用相机拍照。适配到 Android 10

    Photograph 项目地址:donkingliang/Photograph 简介: android 调用相机拍照.适配到 Android 10 更多:作者   提 Bug 标签: android ...

  7. 安卓系统android使用C# .NET Xamarin框架调用相机拍照

    安卓系统android使用C# .NET Xamarin框架调用相机拍照 引言 一.用到的软件.包 二.创建Android应用(Xamarin), 三.增加Nuget中库Xam.Plugin.Medi ...

  8. Android调用相机拍照并添加水印

    最近项目提出新需求,要求在拍照后在图片上添加用户信息的水印,so,楼主重新整理封装了一个简单的拍照+水印的工具类,需求不同,仅供参考.文件操作及权限做了适配,支持androidN及以上版本,放心使用. ...

  9. Android开发之调用相机拍照与本地图库选择图片

    引用链接 Android开发之调用相机拍照与本地图库选择图片 Android调用相机实现拍照功能 部分截图 引言 小项目有一个访问相册的需求,在网上查找得到两位大神博客指点,但博客发布时间过旧,难免因 ...

  10. Java乔晓松-android中调用系统拍照功能并显示拍照的图片

    android中调用系统拍照功能并显示拍照的图片 如果你是拍照完,利用onActivityResult获取data数据,把data数据转换成Bitmap数据,这样获取到的图片,是拍照的照片的缩略图 代 ...

最新文章

  1. 社交网络图挖掘1--将社交网络看作图及其聚类
  2. Java常用消息队列原理介绍及性能对比
  3. VISUAL STUDIO 2008 破解方法
  4. 高通固件解包IPQ6000固件解包
  5. pyhton 把文字放入图片里_藏在京城老字号里的六道功夫菜!久违了!!
  6. metamask中的import account的代码实现
  7. 牛客网(剑指offer) 第二十一题 栈的压入、弹出序列
  8. python对数组的操作_Python对数组的基本操作
  9. oracle 地市 区县分组,oracle分组写法 - 挣扎在陌生城市ITMAN的个人空间 - OSCHINA - 中文开源技术交流社区...
  10. shell命令 安装软件包
  11. 文件打印服务器解决方案
  12. IP报文格式及各字段的意义
  13. Windows 7 多国语言包(MUI)
  14. JAVA练习216-整数的英语表示
  15. FMS视频在线采集系统
  16. Daz3d:如何使用景深
  17. win7计算机管理没有键盘,win7系统中出现键盘无法输入的详细解决步骤
  18. 8-1 职场价值塑造-摆脱低价值瓶颈,展示高价值收获新机会
  19. 深度学习与自然语言处理(1)_斯坦福cs224d Lecture 1
  20. 119全国消防日,我们要注意用火安全

热门文章

  1. 运动装备品牌排行榜,运动爱好者必备好物分享
  2. Linux系统下7个好用的PDF编辑器推荐
  3. GetDc与GetWindowDc的含义
  4. 【论文笔记】Reasoning about Entailment with Neural Attention
  5. nginx 过滤ip
  6. 在剪贴板上有大量信息,是否保留其内容, 以便此后粘贴到其他程序中? VBA 对策
  7. 发明界泥石流!河南一小伙发明陪酒机器人,全程高能结局笑疯
  8. 我的世界服务器聊天微信互通,我的世界跨平台联机 PC、手机等平台数据互通
  9. 在CentOs7上部署Gunicorn
  10. Tex(文档排版工具)