使用webview几种常见的hybrid通信方式
js 与原生之间的通信:
1.JSbridge::(webviewJavascriptBridge)一种js与原生native通信的机制,可以h5与native互调;
2.Cordova:
核心就是原理:
1.假调转请求拦截;
2.弹窗拦截[ alert()、prompt()、confirm() ];
3.js上下文注入(苹果、安卓)
“反h5方案”:
微信小程序:里面可以用js+微信自制的ui方案写一个类似原生的应用,只不过这个应用不是发布在 APP store,而是发布在微信中;
react native:里面可以用js来写一个原生应用;
1.传统的JSInterface
首先先介绍一下最普通的一种通信方式,就是使用Android原生的JavascriptInterface来进行js和java的通信。
2.JSBridge
JSBridge,顾名思义,就是和js沟通的桥梁。JSBridge的作用是提供一种js和java通信的框架?
我们还是来捋一捋整个过程。
(1) 在js脚本中把对应的方法名,参数等写成一个符合协议的uri,并且通过window.prompt方法发送给java层。
(2) 在java层的onJsPrompt方法中接受到对应的message之后,通过JsCallJava类进行具体的解析。
(3) 在JsCallJava类中,我们解析得到对应的方法名,参数等信息,并且在map中查找出对应的类的方法。
UrlRouter
其实严格的说,UrlRouter不算是js和java的通信,它只是一个通过url来让前端唤起native页面的框架。不过千万不要小看它的作用,如果协议定义的合理,它可以让前端,Android和iOS三端有一个高度的统一,十分方便。
思路
其实吧,这个思路比JSBridge还要简单,就是我们通过自己实现的框架去拦截前端同学写的url,发现如果是符合我们UrlRouter的协议的话,就跳转到相应的页面。
混合开发-webview和原生交互
原生和 h5 的通信问题
Hybrid APP之Native和H5页面交互原理
从零收拾一个 hybrid 框架(二)-- WebView 容器基础功能设计思路
好好和h5沟通!几种常见的hybrid通信方式
Android混合H5进行Hybrid开发的探索
使用webview几种常见的hybrid通信方式的更多相关文章
- 几种常见的Android自动化测试框架及其应用
随着Android应用得越来越广,越来越多的公司推出了自己移动应用测试平台.例如,百度的MTC.东软易测云.Testin云测试平台…….由于自己所在项目组就是做终端测试工具的,故抽空了解了下几种常见的 ...
- 几种常见的Shell
Unix/Linux上常见的Shell脚本解释器有bash.sh.csh.ksh等,习惯上把它们称作一种Shell.我们常说有多少种Shell,其实说的是Shell脚本解释器. bash bash是L ...
- SQL Server 存储过程中处理多个查询条件的几种常见写法分析,我们该用那种写法
本文出处: http://www.cnblogs.com/wy123/p/5958047.html 最近发现还有不少做开发的小伙伴,在写存储过程的时候,在参考已有的不同的写法时,往往很迷茫,不知道各种 ...
- JSP之WEB服务器:Apache与Tomcat的区别 ,几种常见的web/应用服务器
注意:此为2009年的blog,注意时效性(针对常见服务器) APACHE是一个web服务器环境程序 启用他可以作为web服务器使用 不过只支持静态网页 如(asp,php,cgi,jsp)等 ...
- 四种常见的App弹窗设计,你有仔细注意观察吗?
弹窗又称为对话框,是App与用户进行交互的常见方式之一.弹窗分为模态弹窗和非模态弹窗两种,两者的区别在于需不需要用户对其进行回应.模态弹窗会打断用户的正常操作,要求用户必须对其进行回应,否则不能继续其 ...
- 几种常见语言的命名空间(Namespace)特性
命名空间提供了一种从逻辑上组织类的方式,防止命名冲突. 几种常见语言 C++ 命名空间是可以嵌套的 嵌套的命名空间是指定义在其他命名空间中的命名空间.嵌套的命名空间是一个嵌套的作用域,内层命名空间声明 ...
- 解析XML文件的几种常见操作方法—DOM/SAX/DOM4j
解析XML文件的几种常见操作方法—DOM/SAX/DOM4j 一直想学点什么东西,有些浮躁,努力使自己静下心来看点东西,哪怕是回顾一下知识.看到了xml解析,目前我还没用到过.但多了解一下,加深点记忆 ...
- (转)四种常见的 POST 提交数据方式
四种常见的 POST 提交数据方式(转自:https://imququ.com/post/four-ways-to-post-data-in-http.html) HTTP/1.1 协议规定的 HTT ...
- HTTP协议和几种常见的状态码
前言:明知山有釜,偏向釜山行-----电影<釜山行> ------------------------------------------------------------------- ...
随机推荐
- [20181109]12c sqlplus rowprefetch参数5
[20181109]12c sqlplus rowprefetch参数5.txt --//这几天一直在探究设置sqlplus参数rowprefetch与arraysize的关系,有必要做一些总结以及一 ...
- ueditor在线编辑器的简单使用-上传图片
由于我的项目个人博客网站需要用到在线编辑器,百度的ueditor编辑器就是一个很好的编辑器.开始比较迷茫的使用,各种百度,没有我满意的答案,明明可以很简单的使用. 1.首先进入ueditor官网下载, ...
- c/c++ 标准库 set 自定义关键字类型与比较函数
标准库 set 自定义关键字类型与比较函数 问题:哪些类型可以作为标准库set的关键字类型呢??? 答案: 1,任意类型,但是需要额外提供能够比较这种类型的比较函数. 2,这种类型实现了 < 操 ...
- CSipIm断网重连崩溃原因分析
断网重连之后的操作流程 拨打电话 ->调用SipService.makeCallOptions(),先重启一遍SipService保证PjSipService的各参数正常,尤其是create参数 ...
- February 27th, 2018 Week 9th Tuesday
Great minds think alike. 英雄所见略同. If great minds really did think alike, then we would live in an unr ...
- 【Beta】博客合集
[Beta Scrum]冲刺! 1/5 [Beta Scrum]冲刺! 2/5 [Beta Scrum]冲刺! 3/5 [Beta Scrum]冲刺! 4/5 [Beta Scrum]冲刺! 5/5
- MYSQL基本操作(上)
很久之前,就想做个Mysql的小结,毕竟数据库知识是软件研发的基本技能,这里话不多说,开始总结一波. 数据库基本概念 数据库为高效的存储和处理数据的介质(主要分为磁盘和内存两种),一般关系型数据库存储 ...
- 《Java大学教程》—第18章 高级图形编程
自测题:1. 在图形应用程序中为用户提供选择的多种方式:P433下拉菜单(pull-down menu).弹出式菜单(pop-up menu).对话框窗口(dialogue window).单选 ...
- es6拼接字符串``
不需要任何的加号和引号,全部字符仅仅由一组``符号包裹即可,而放置动态数据或者变量即用${变量}方式即可, 看着是真的一目了然啊,最主要是终于可以摆脱被拼接字符支配的恐惧了,哈哈哈哈.
- python 之常用模块
一 认识模块 二 常用模块 (1)re模块 (2)collections模块 一 认识模块 (1)什么是模块 (2)模块的导入和使用 (1)模块是:一个模块就是一个包含 ...