Android原生h5互跳控制,Android原生与H5交互方式
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交互方式相关推荐
- android h5和原生方法调用,Android原生与H5通信
如今,混合开发似乎成为了主流.H5拥有跨平台的优势,却存在性能上的问题正好可以用搭建原生壳承载H5代码的方式去解决. 如何理解这种方式,就好像说Android原生代码封装外壳,内部包含H5代码作为核心 ...
- 客户端相关知识学习(三)之Android原生与H5交互的实现
Android原生与H5交互的实现 H5调用原生的方式 方式可能有多种,根据开发经验,接触过两种方式. 方法一:Android向H5注入全局js对象,也就是H5调Android 1.首先对WebVie ...
- 原生与H5混合式开发详解
声明:本教程不收取任何费用,欢迎转载,尊重作者劳动成果,不得用于商业用途,侵权必究!!! 目录 一.前言 二.原生与H5简介 1.浅析原生Android与HTML5 2.Native App的优缺点 ...
- 蚂蚁mPaaS框架控制台打印 原生与h5交互数据 和 RPC接口返回数据 都是Unicode乱码如何处理
1.原生与h5交互数据 具体的参考之前博客:https://blog.csdn.net/qq_15509071/article/details/113876172 这里修改为: - (void)use ...
- android h5页面跳转,android H5 应用内跳转Scheme协议
什么是URL Scheme 概述: android中的scheme是一种页面内跳转协议,是一种非常好的实现机制,通过定义自己的scheme协议,可以非常方便跳转app中的各个页面:通过scheme协议 ...
- android原生界面太烦了,Android进阶(二十七)Android原生扰人烦的布局
Android原生扰人烦的布局 在开发Android应用时,UI布局是一件令人烦恼的事情.下面主要讲解一下Android中的界面布局. 一.线性布局(LinearLayout) 线性布局分为: (1) ...
- android驱动例子(led灯控制),android驱动例子(LED灯控制)
--作者:赖玉平(Peter Lai)aulyp@163.com 本例子,讲述在android2.1上完全自已开发一个驱动去控制硬件口并写应用测试该驱动,通过这样一个例子,解析android下的驱动开 ...
- android底部导航进行跳转,Android实现底部导航菜单的跳转--BottomNavigationView
效果: 项目结构: 需要用到design依赖: 现在是:implementation 'com.android.support:design:28.0.0' 代码: activity_main.xml ...
- Android原生PDF功能实现,Android开发面试书籍
/** 加载PDF文件 */ private void loadPdf() { Intent intent = getIntent(); if (intent != null) { assetsFil ...
最新文章
- jupyter notebook用法积累(快捷键)
- 4g8核支持多少php进程,服务器8核16g内存,同时有1000多人在抢红包,有502怎么办?...
- 中国31个金融中心城市
- linux-3.4.2移植到FL2440上(一)--只是基本移植
- 我是怎样刚拿饿了么P7 offer,然后途虎一轮游的
- wordpress-Sakurairo美化主题模板
- 大数据平台有什么功能
- [Python]利用python+ffmpeg合并B站视频及格式转换
- tas5424_TAS5414A,TAS5424A,-电子电路图,电子技术资料网站
- 轻量级git服务gogs平台
- 开票服务器系统是否可以抵扣,开票系统服务费抵扣的账务处理
- MMS的基本特征与特点(转)
- 路由器怎么连接台式电脑
- Python,折线图,手写数字,图像反色、二值化、28X28
- 卫生院医保计算机管理制度,卫生院医保规章制度
- H. Maximal AND
- 修改Android系统默认时间
- 传奇手游怎么开服?需要投资多少?需要那些东西?
- b2b2c商城系统开发
- Android开发人口流动管理,Android轻松搞定流动布局