Demo 地址:码云

一、Android API提供的官方交互方式

1.webView.getSettings().setJavaScriptEnabled(true);设置webview运行执行js代码。

2.在提供给H5使用的方法上添加注解@JavascriptInterface,只有存在此注解的方法才可以被

H5使用(谷歌面对webview已知漏洞在API 4.4以后增加的防御措施)。

3.webView.addJavascriptInterface(Object,name);向H5中注入java对象,H5通过name调用java方法。

如:

Android:

webview.addJavascriptInterface(new NativeMethodList(),"nativeMethod");

class NativeMethodList{

@JavascriptInterface

public void show(){

TalkApp.talk(“调用了native无参方法");

}

}

H5:

document.getElementById("btn0").onclick = function({

nativeMethod.show();

};

二、加载解析url的交互方式

1.webView.setWebViewClient(WebViewClient);

2.重写WebViewClient中shouldOverrideUrlLoading方法,这个方法回调有两个参数,WebView对象和WebResourceRequest对象。

3.解析WebResourceRequest对象,拿到储存在url中的参数,根据一定规则调用不同的java方法。

常见用法:打开某个应用界面:

在某一个Activity中设置intent-filter标签可以监听url,如下:

android:host="app"

android:path="/main"/>

在打开的Activity中通过getIntent().getData()可以拿到打开它的url,解析其可以获取到url中的各种参数。

注:现市场上大部分浏览器可以通过scheme打开应用,需要在步骤2中添加跳转Activity的方法,否则应用内部的webview无法跳转应用界面。

三、Cookie 使用

1.

webViewCookieManager instance = CookieManager.getInstance();

instance.getCookie(url);

可以获取到url对应的cookie,也就是说H5与Android可以同时操作cookie

四、JsBridge : 5K star的开源库

这个库解决了H5 和 Android之间的方法调用,通过加载解析url的方式,并向H5中注入script对象,同时维护Android 和 H5的消息队列,已达到调用方法,返回值得功能。

Android原生h5互跳控制,Android原生与H5交互方式相关推荐

  1. android h5和原生方法调用,Android原生与H5通信

    如今,混合开发似乎成为了主流.H5拥有跨平台的优势,却存在性能上的问题正好可以用搭建原生壳承载H5代码的方式去解决. 如何理解这种方式,就好像说Android原生代码封装外壳,内部包含H5代码作为核心 ...

  2. 客户端相关知识学习(三)之Android原生与H5交互的实现

    Android原生与H5交互的实现 H5调用原生的方式 方式可能有多种,根据开发经验,接触过两种方式. 方法一:Android向H5注入全局js对象,也就是H5调Android 1.首先对WebVie ...

  3. 原生与H5混合式开发详解

    声明:本教程不收取任何费用,欢迎转载,尊重作者劳动成果,不得用于商业用途,侵权必究!!! 目录 一.前言 二.原生与H5简介 1.浅析原生Android与HTML5 2.Native App的优缺点 ...

  4. 蚂蚁mPaaS框架控制台打印 原生与h5交互数据 和 RPC接口返回数据 都是Unicode乱码如何处理

    1.原生与h5交互数据 具体的参考之前博客:https://blog.csdn.net/qq_15509071/article/details/113876172 这里修改为: - (void)use ...

  5. android h5页面跳转,android H5 应用内跳转Scheme协议

    什么是URL Scheme 概述: android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面:通过scheme协议 ...

  6. android原生界面太烦了,Android进阶(二十七)Android原生扰人烦的布局

    Android原生扰人烦的布局 在开发Android应用时,UI布局是一件令人烦恼的事情.下面主要讲解一下Android中的界面布局. 一.线性布局(LinearLayout) 线性布局分为: (1) ...

  7. android驱动例子(led灯控制),android驱动例子(LED灯控制)

    --作者:赖玉平(Peter Lai)aulyp@163.com 本例子,讲述在android2.1上完全自已开发一个驱动去控制硬件口并写应用测试该驱动,通过这样一个例子,解析android下的驱动开 ...

  8. android底部导航进行跳转,Android实现底部导航菜单的跳转--BottomNavigationView

    效果: 项目结构: 需要用到design依赖: 现在是:implementation 'com.android.support:design:28.0.0' 代码: activity_main.xml ...

  9. Android原生PDF功能实现,Android开发面试书籍

    /** 加载PDF文件 */ private void loadPdf() { Intent intent = getIntent(); if (intent != null) { assetsFil ...

最新文章

  1. jupyter notebook用法积累(快捷键)
  2. 4g8核支持多少php进程,服务器8核16g内存,同时有1000多人在抢红包,有502怎么办?...
  3. 中国31个金融中心城市
  4. linux-3.4.2移植到FL2440上(一)--只是基本移植
  5. 我是怎样刚拿饿了么P7 offer,然后途虎一轮游的
  6. wordpress-Sakurairo美化主题模板
  7. 大数据平台有什么功能
  8. [Python]利用python+ffmpeg合并B站视频及格式转换
  9. tas5424_TAS5414A,TAS5424A,-电子电路图,电子技术资料网站
  10. 轻量级git服务gogs平台
  11. 开票服务器系统是否可以抵扣,开票系统服务费抵扣的账务处理
  12. MMS的基本特征与特点(转)
  13. 路由器怎么连接台式电脑
  14. Python,折线图,手写数字,图像反色、二值化、28X28
  15. 卫生院医保计算机管理制度,卫生院医保规章制度
  16. H. Maximal AND
  17. 修改Android系统默认时间
  18. 传奇手游怎么开服?需要投资多少?需要那些东西?
  19. b2b2c商城系统开发
  20. Android开发人口流动管理,Android轻松搞定流动布局

热门文章

  1. 永磁同步电机的标么值系统
  2. Android 人脸解锁源码剖析
  3. Android Q 上的Biometric生物识别之Face人脸识别流程
  4. 【SAP-CO】统计指标
  5. matlab 数值计算课 二阶微分方程-龙格库塔方法 ODE45
  6. Redis--重写机制(减小AOF文件大小)
  7. 协同(OA)应用中的七个机制
  8. Python 抓取淘宝联盟优惠券
  9. 绕cdn找源站ip(提供思路)
  10. python合并列表并按升序排序_程序合并间隔并在Python中按升序对其进行排序