一些应用为了节省开发时间,会开用Android、iOS内嵌HTML方式进行开发,在涉及到打电话、发短信这些Android原生功能时,需要涉及到webView中js与ANdroid的交互。这里结合我做过的项目,以其中的拨打电话的功能为例,总结下过程:

1、添加权限声明

2、添加JavaScript支持contentWebView.getSettings().setJavaScriptEnabled(true);

3、重写shouldOverrideUrlLoading(WebView view, String url)方法,对符合和不符合条件的URL进行判断public boolean shouldOverrideUrlLoading(WebView view, String url) {            if (url.startsWith("tel:")) {

Intent intent = new Intent(Intent.ACTION_VIEW,

Uri.parse(url));

startActivity(intent);

return false;

} else {

view.loadUrl(url);                return true;

}

}

4、在web页面的链接改造成调用js函数,在函数里面执行类似window.js交互接口名.js函数名()。function func(tel){

window.jsInterface.exitSys(tel);

}

5、在Android壳源码里面对应加上js接口声明,比如我的名称是jsInterface。contentWebView.addJavascriptInterface(new JavascriptInterface(this),            "jsInterface");

6、在JavascriptInterface类里面声明与js对应的方法。public void exitSys(String number) {

Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:"+number));

startActivity(intent);

}

7、被调用的js如有需要请动态传参。

8、在web页面加上浏览器判断操作系统类型,并执行对应的js函数。$(document).ready(function(){

$("a").each(function(){            var u = navigator.userAgent;            if(u.indexOf('iPhone') > -1){

}            else {                if($(this).attr("href").length>4&&$(this).attr("href").indexOf("tel:")==0){

$(this).attr("href","javascript:exitSys('"+$(this).attr("href").replace("tel:","")+"')");

}

}

});

});

js android打电话,Android开发webview与js的交互总结【安卓巴士博文大赛】相关推荐

  1. android应用案例开发大全_vue.js入门及经典应用案例总结(前端开发必看)

    <大数据和人工智能交流>头条号向广大初学者新增C .Java .Python .Scala.javascript 等目前流行的计算机.大数据编程语言,希望大家以后关注本头条号更多的内容. ...

  2. Carson带你学Android:你要的WebView与 JS 交互方式都在这里了

    前言 现在很多App里都内置了Web网页(Hybrid App),比如说很多电商平台,淘宝.京东.聚划算等等,如下图 上述功能是由Android的WebView实现的,其中涉及到Android客户端与 ...

  3. 安卓巴士Android开发神贴整理

    10个经典的Android开源应用项目 http://www.apkbus.com/android-13519-1-1.html 安卓巴士总结了近百个Android优秀开源项目,覆盖Android开发 ...

  4. Android网站客户端开发

    注:本文来自友盟-安卓巴士教程大赛第一名获奖作品,作者安卓巴士的ID为liupeinye.推荐给所有刚刚开始接触Android开发的朋友们! 本文面向Android初级开发者,有一定的Java和And ...

  5. Android开发-Android原生与WebView的js交互的实现

    前 言 一般在Android应用的开发过程中,一些核心的业务功能开发往往需要Android原生的开发,一些需要改动比较频繁的功能且不是核心的业务功能往往只需要在Android应用调用一个网页就行了.在 ...

  6. 移动开发周刊:Android ImageView正确使用、WebView与JS交互解析

    写在前面 从 2011 年创建首刊至今,移动开发周刊内容聚焦 Android.iOS.VR/AR 等前沿移动开发技术,精选一周最热点,解读开发技巧,从中希望能够让你有一些收获,如果你有好的文章以及优化 ...

  7. Android开发-WebView中实现Android调用JS JS调用Android 【三】

    老早之前就想总结下Webview相关的知识点了,因为互联网大潮中,很多APP都会使用到Webview,像那些不计其数的电商APP,无一例外的使用Webview:或者一些非电商APP中的像广告页面,注册 ...

  8. Android WebView 与 JS 交互

    2019独角兽企业重金招聘Python工程师标准>>> 在android activity webView的使用,activity中执行html中的js 方法, 和在html 中 调 ...

  9. Android WebView与JS交互入门

    2019独角兽企业重金招聘Python工程师标准>>> 首先在Anndroid代码中对WebView进行初始化 webView = (WebView) findViewById(R. ...

最新文章

  1. Web自动化之Headless Chrome概览
  2. E0144“const char *“ 类型的值不能用于初始化 “char *“ 类型的实体
  3. 常见的服务器内存浅析
  4. 平行相似定理_初中数学知识点----相似三角形
  5. android 触摸屏 旋转,android-使用OpenGl和触摸屏功能在视觉上纠正旋转
  6. jQuery就业课程之表单选择器系列
  7. tfw文件如何导入cad_教你三维家3d设计软件如何导入cad文件
  8. 如何让new操作符只构造,不申请内存
  9. 第一周:深度学习引言(Introduction to Deep Learning)
  10. poj2991(Crane)线段树+计算几何
  11. BAT Java面试154道题分享!搞懂轻松进BAT
  12. 谈谈主策划需要的能力
  13. 计算机程序设计员( 国家职业标准三级),计算机程序设计员国家职业标准
  14. Unity 3D光源-Directional平行光/逆光效果,光晕详解、教程
  15. Linux进程通信的试验
  16. 全新的Uber App设计
  17. chan相关的知识点
  18. C语言趣味一百道 第25题 2017_12_24
  19. java火焰纹章攻略女神之剑_火焰纹章晓之女神图文攻略(4)
  20. 散阅史记_老子韩非列传第三

热门文章

  1. 2019牛客暑期多校maximum clique 1 求最大独立团点集
  2. 计算用户输入的日期距离1990年1月1日相距多少天
  3. renpy 战斗框架转载
  4. OpenGL核心技术之HDR
  5. 如何用PHP实现图片与视频合成,照片如何插入视频中|照片与视频合并
  6. Freemarker模板引擎学习,生成html里的动态表格,可合并单元格
  7. 数据迁移工具/平台大全
  8. Web项目myeclipse和idear 中URl地址的输入
  9. 20N20-ASEMI低功耗场效应管20A 200V
  10. 符合哪些条件才算是无效合同