博主之前做过移动端app嵌入网页,与Android和IOS有交互,一直没有时间分享过程。这里不多说Android交互啦~很简单,详细了解IOS与h5的交互吧。

IOS不同语法和h5的交互所建立的JSBrige是不一样的,但是大致思想是一样。这里粘出swift与h5交互创建JSBrige。

这是js部分基础搭建桥,可以将其固定封装成单独的js文件,然后在main.js中引入,我们可以通过SwiftJSBridge.callNativeBridge传输数据。

假设网页端需要从ios端拿到token,便可以约定一个名为getToken的方法,{}里写着与ios约定好的JSON对象

window['first']=function() {
if(window.SwiftJSBridge){
SwiftJSBridge.callNativeBridge("getToken",{"data":"give me token"},function(data){
if(data.token){
//操作token
axios.defaults.headers.common['psstoken'] = data.token;
localStorage.setItem('token',data.token);
}
 
return;
})
}
}

交互方面其实是简单的。但是关于ios版本不兼容插件问题会有很多麻烦之处。

ios9不兼容jquery.mobile 1.4.5以下,并且不兼容es6语法糖,所以会导致如果使用原生js写项目,在ios9版本的手机,会没有任何js的交互功能出现。改用jquery.mobile 1.4.5之后,的确可以兼容了,但是却出现了ios其他版本请求后台没有反应的情况,经过一系列排查发现jquery.mobile 1.4.5是不被ios其他版本兼容的,因此当这种兼容问题出现时,可以考虑从客户端拿版本进行判断,也可以无脑式将两种插件载入。。没想到这招可以。。爬坑艰难

---zyy小媛酱---

IOS与h5交互记录的更多相关文章

  1. iOS与H5交互遇到的坑

    之前的博客写过使用<JavaScriptCore/JavaScriptCore.h>库来实现与H5的交互,但是在项目中还是遇到了一些不得不踩的坑.在这里将我遇到的问题以及参考网上几位大神的 ...

  2. iOS与H5交互

    H5与App原生交互,一般会是前端页面中的JavaScript与App使用的原生开发语言的交互.技术方案应能达到以下要求: 在js与原生进行交互的时候能保证正常的正向调用逻辑返回,反向可以处理异步回调 ...

  3. WebViewJavascriptBridge详细使用 iOS与H5交互的方案

    WebViewJavascriptBridge详细使用 源网址: https://www.cnblogs.com/jiang-xiao-yan/p/5345755.html    前言 WebView ...

  4. iOS与H5交互及UIWebView缓存

    iOS原生App与H5页面交互笔记 最近在做一个项目用到了原生App与H5交互,之前有做过简单的H5页面直接调用原生方法的例子,就是利用UIWebView中的代理方法 //webview每次加载之前都 ...

  5. iOS与H5交互(WKWbebView)

    前言: 在iOS开发中,或多或少的会嵌入一些H5页面,有时候需要原生代码和H5页面进行交互.iOS8开始苹果推出性能更强大的WKWebView,所以一下方法是关于WKWebView与JS的交互. 创建 ...

  6. 浅谈 iOS 与 H5 的交互- JavaScriptCore 框架

    前言 小的作为一个iOS程序猿,可能研究JavaScript以及H5相关的知识并不是为了真正的要去转行做这一方面,其实更多的为了要研究OC中的JavaScriptCore框架,JavaScriptCo ...

  7. iOS原生APP和H5交互-delegate和第三方

    一.原生代码中直接加载页面(拦截) 1.    具体案例 加载本地/网络HTML5作为功能介绍页 2.    代码示例 //本地 -(void)loadLocalPage:(UIWebView*)we ...

  8. iOS JavaScriptCore与H5交互时出现异常提示

    在利用JavaScriptCore与H5交互时出现异常提示: This application is modifying the autolayout engine from a background ...

  9. Native与H5交互的一些解决方法

    一. 原生代码中直接加载页面 1.    具体案例 加载本地/网络HTML5作为功能介绍页 2.    代码示例 //本地 -(void)loadLocalPage:(UIWebView*)webVi ...

随机推荐

  1. Apache反向代理结合Tomcat集群来实现负载均衡(一)、概念理解

    好的博文一般都能做到"望题知文",看下标题就知道下边要讲的内容,写这个标题时犹豫了一下,本来要将标题定位apache+tomcat实现负载均衡,但是又认为这样显得比較模糊.后来想了 ...

  2. BZOJ 2631 tree 动态树(Link-Cut-Tree)

    题目大意:维护一种树形数据结构.支持下面操作: 1.树上两点之间的点权值+k. 2.删除一条边.添加一条边,保证加边之后还是一棵树. 3.树上两点之间点权值*k. 4.询问树上两点时间点的权值和. 思 ...

  3. svn 插件安装

    方法一:link安装  1.从官网下载site-1.6.18.zip文件. 2.从中解压出features与 plugins目录.拷贝到D:\MyEclipse\myPlugin\svn里面,其他的* ...

  4. 安卓实现序列化之Parcelable接口

    安卓实现序列化之Parcelable接口 1.实现序列化的方法: Android中实现序列化有两个选择:一是实现Serializable接口(是JavaSE本身就支持的) .一是实现Parcelabl ...

  5. 二维数组+字符串split+Double包装类 例题

    将String s = "1,2;3,4,5;6,7,8" 存放在double类型的二维数组中,使得 d[0][0]=1.0 d[0][1]=2.0 d[1][0]=3.0 d[1 ...

  6. 基于Torndb的简易ORM

    ============================================================================ 原创作品,同意转载. 转载时请务必以超链接形式 ...

  7. cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第0步---知识点总结&amp;效果预览&amp;设计思路

    /* 说明: **1.本次游戏实例是<cocos2d-x游戏开发之旅>上的最后一个游戏.这里用3.0重写并做下笔记 **2.我也问过木头本人啦,他说:随便写.第一别全然照搬代码:第二能够说 ...

  8. SQL SEVER 元年是1900年

    用SQL语句求 本月第一天,怎么写? 可以这样写: SELECT DATEADD(mm,DATEDIFF(mm,0,GETDATE()),0); 按照日期函数DATEDIFF的定义,第二个参数是开始日 ...

  9. JS遮罩层

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  10. 深入解析Dropout——基本思想:以概率P舍弃部分神经元,其它神经元以概率q=1-p被保留,舍去的神经元的输出都被设置为零

    深度学习网络大杀器之Dropout——深入解析Dropout  转自:https://yq.aliyun.com/articles/68901 摘要: 本文详细介绍了深度学习中dropout技巧的思想 ...