JS和安卓 IOS的交互 例子式记录

(function () {
var u = navigator.userAgent;
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);

if(isAndroid){
(function(){
function android_inter(){
let t_url = "xxxxxx";
document.getElementById("事件监听的DOM节点").onclick = function () {
android.onNavigateByScheme(t_url);
}
}
android_inter();
})();
}else if(isiOS){
/**
* UIWebView与JS之间的桥接
*/
function setupWebViewJavascriptBridge(callback) {
if (window.WebViewJavascriptBridge) { return callback(WebViewJavascriptBridge); }
if (window.WVJBCallbacks) { return window.WVJBCallbacks.push(callback); }
window.WVJBCallbacks = [callback];
var WVJBIframe = document.createElement('iframe');
WVJBIframe.style.display = 'none';
WVJBIframe.src = 'https://__bridge_loaded__';
document.documentElement.appendChild(WVJBIframe);
setTimeout(function() { document.documentElement.removeChild(WVJBIframe) }, 0)
}
let t_url = "xxxxxx";
document.getElementById("事件监听的DOM节点").onclick = function () {
setupWebViewJavascriptBridge(function(bridge) {
bridge.callHandler("客户端定义好的函数名",t_url, function (responseData) {
});
});
}
}
})();

转载于:https://www.cnblogs.com/Neilisme/p/9560902.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/250787.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue --- ref属性获取dom元素和子组件的方法

说明: // 假设login的组件定义如下: Vue.component(login, {template:<h1>登录</h1>,data(){return {msg:son msg,}},methods(){show(){console.log(调用子组件的方法);}} }) // 在父元素中使用 <div id"app"><login ref"myLogin"&g…

【工程师综合项目二】React + Koa2打造『JS++官网管理后台』

Redis认知、安装与操作 MongoDB&#xff1a;动态数据库&#xff0c;如游戏中需要频繁地保存人物的坐标 Oracle&#xff1a;收费&#xff0c;企业级 mac要安装homebrew&#xff08;包管理工具&#xff09; window安装Redis程序运行教程 命令行Redis操作 启动&#xff1a; redis-…

webpack --- html-webpack-plugin

安装 cnpm i html-webpack-plugin -D配置 (webpack.config.js) // webpack 是基于node构建的,webpack的配置文件中,任何合法的Node代码都是支持的 var path require(path)// 在内存中生成src下的index.html,同时自动将打包好的bundle.js 导入到页面中 var htmlWebpackPlugin…

nyoj164——卡特兰数(待填坑)

题意&#xff1a;将1~2n个数按照顺时针排列好&#xff0c;用一条线将两个数字连接起来要求&#xff1a;线之间不能有交点&#xff0c;同一个点只允许被连一次。 最后问给出一个n&#xff0c;有多少种方式满足条件。 卡特兰数&#xff08;列&#xff09;&#xff1a; 令h(0)1,h(…

git 使用

1. 先进入项目文件夹&#xff0c;通过命令 git init 把这个目录变成git可以管理的仓库 git init 2. 把文件添加到版本库中&#xff0c;使用命令 git add .添加到暂存区里面去&#xff0c;不要忘记后面的小数点“.”&#xff0c;意为添加文件夹下的所有文件 git add . 3. 用命令…

webpack --- 使用vue

// webpack中如何使用 vue: // 1. 安装vue 的包: cnpm i vue -S // 2. 由于在 webpack 中,推荐使用 . vue 这个组件模板文件定义组件, 所以需要安装能解析这种文件的loader cnpm i vue-loader vue-template-compiler -D // 3. 在main.js 中导入 vue的包, import Vue from vue…

ES6杂碎

1、let声明的变量没有变量提升&#xff1b; 2、const声明的变量&#xff1a;块级作用域内有效&#xff0c;存在暂时性死区&#xff0c;变量指向的那个内存地址不得改动&#xff1b; 3、...tail解构出来的是数组或空数组 let [head, ...tail] [1, 2, 3, 4]; head //1 tail //[2…

koa --- 自制简易的koa-router

打算自己写一个简单的Router类,来实现koa-router这个中间件的(部分)神奇功能 确定需求 1.首先导入需要在app.js里面导入自己写的Router类 2.然后是使用的方式和挂载router的方式 // 导入Router类 const Router require(./components/router.js);// 使用方式,(暂时只对get请…

MariaDB 脚本

研究MariaDB&#xff0c; 需要mock up一些假数据&#xff1a; 生成n个长度整型数的函数rand_num&#xff1a; CREATE DEFINERrootlocalhost FUNCTION rand_num(n INT) RETURNS int(5) begin DECLARE i INT DEFAULT 0; DECLARE result INT DEFAULT 0; WHILE i < n DOSET re…

Promise的基本使用

利用Promise是解决JS异步执行时候回调函数嵌套回调函数的问题&#xff0c; 更简洁地控制函数执行流程&#xff1b; 通过new实例化Promise&#xff0c; 构造函数需要两个参数&#xff0c; 第一个参数为函数执行成功以后执行的函数resolve&#xff0c; 第二个函数为函数执行失败…

软工作业PSP与单元测试训练

一、实现模块判断传入的身份证号码的正确性&#xff1b; 二、针对所实现的模块编写对应的单元测试代码&#xff1b; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.GregorianCalendar; import java.u…

koa --- nunjucks

安装: npm install koa-nunjucks-2 --save目录结构 |--- controller/ | |--- home.js |--- service/ | |--- home.js |--- views/ |--- app.js |--- router.jsapp.js // (部分) const nunjucks require(koa-nunjucks-2); app.use(nunjucks({ext: html,path: path.joi…

DNN模型训练词向量原理

转自&#xff1a;https://blog.csdn.net/fendouaini/article/details/79821852 1 词向量 在NLP里&#xff0c;最细的粒度是词语&#xff0c;由词语再组成句子&#xff0c;段落&#xff0c;文章。所以处理NLP问题时&#xff0c;怎么合理的表示词语就成了NLP领域中最先需要解决的…

天平称重【递归解法】

用天平称重时&#xff0c;我们希望用尽可能少的砝码组合称出尽可能多的重量。如果只有5个砝码&#xff0c;重量分别是1&#xff0c;3&#xff0c;9&#xff0c;27&#xff0c;81则它们可以组合称出1到121之间任意整数重量&#xff08;砝码允许放在左右两个盘中&#xff09;。 本…

算法 --- reduce的使用.

描述: 难点: 将[[‘a’,‘b’,‘c’],[‘d’,‘e’,‘f’]]输出为[“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce”, “cf”]. 关键代码描述: 1.假设我们已经根据输入的数字得到了 rawArr [[‘a’,‘b’,‘c’],[‘d’,‘e’,‘f’]] 2. 下一步将rawArr[0…

SpringBoot、mysql配置PageHelper插件

一&#xff1a;https://blog.csdn.net/h985161183/article/details/79800737 主要异常&#xff1a;org.springframework.beans.factory.BeanCreationException: Error creating bean with name com.github.pagehelper.autoconfigure.PageHelperAutoConfiguration: pageHelper.…

字符串的拆分以及分隔符所在不同位置的删除

try { //根据imComuserGroupMng获取这个数据库的所有ImComuserGroup数据 List<ImComuserGroup> list imComuserGroupMng.findAllComuserGroup(); //便利实体数据list为数据的集合 …

算法 --- 递归生成括号

问题描述 思路: 1.首先生成n个括号 2.左括号数量(记为l)不超过n 3.右括号数量(记为r)不超过n,且优先生成左括号(即 l < r) 4.需要设计一个递归式h(str,l,r) // 一开始,str , l 0, r 0 // 第一步进去,添加左括号, str(, l 1, r 0 // 然后因为 l < n . r < l 所以…

使用 TypeScript 改造构建工具及测试用例

最近的一段时间一直在搞TypeScript&#xff0c;一个巨硬出品、赋予JavaScript语言静态类型和编译的语言。 第一个完全使用TypeScript重构的纯Node.js项目已经上线并稳定运行了。 第二个前后端的项目目前也在重构中&#xff0c;关于前端基于webpack的TypeScript套路之前也有提到…

JavaScript 验证表单不为空和获取select下拉列表的值和文本

1.验证表单不为空 var hasform { "Name": "名字", "Id_card": "身份证", "PaySalary": "月工资", "CardCode": "账号", "Fk_Subjectf_Code": &quo…