ios传值给js_WKWebView JS与OC间相互传值调用
写在前面
本文将介绍如何使用WKWebView进行JS与OC、OC与JS间的传值和方法调用。
前置条件
1、导入WebKit.framework
2、声明WKWebView
JS调用OC原生方法
1、前端在js文件中实现
这里要注意messageHandlers后面跟着的deviceInfo要与原生的定义的一致。
2、iOS 实现WKScriptMessageHandler协议
3、iOS 初始化WKWebView
这里注意[userController addScriptMessageHandler:self name:@"deviceInfo"];
这个方法里的deviceInfo要与前端定义的一致。
4、iOS 实现WKScriptMessageHandler协议方法
message.body就是前端传来的参数
OC调用JS方法
1、实现WKNavigationDelegate协议
2、实现WKNavigationDelegate协议的- webView: didFinishNavigation:方法
3、OC调用JS方法
其中deviceInfo('8.3')为前端给出的JS方法名8.3是需要传给前端的参数
4、注意事项
以下错误的解决方法
一定要在网页加载完成后调用,否则报错
JS方法一定要放在最外层
图片出处不详,请作者看到与我联系,侵删
ios传值给js_WKWebView JS与OC间相互传值调用相关推荐
- JS和OC间的通信(使用JavaScriptCore)
JavaScriptCore 时代的通讯 iOS 7 开始,苹果提供了一个叫作 JavaScriptCore 的框架,使用 JavaScriptCore 框架可以实现 OC 和 JS 的互相调用,而不 ...
- js静态页面间的传值
一:JavaScript静态页面值传递之URL篇 能过URL进行传值.把要传递的信息接在URL上. 例子: 参数传出页面Post.htm-> <input type="tex ...
- vue组件间相互传值
一般vue的组件之间的传值分为:父组件传子组件,子组件传父组件,任意组件之间传值. 1.父组件传子组件:(父组件通过v-bind(可以缩写为 :)发送,子组件通过props接收) //父组件中引入子组 ...
- javascript frame框架间函数变量的相互引用 frame间相互传值
框架编程概述一个HTML页面可以有一个或多个子框架,这些子框架以< iframe> 来标记,用来显示一个独立的HTML页面.这里所讲的框架编程包括框架的自我控制以及框架之间的互相访问,例如 ...
- js文件与html相互传值
前言 js文件是前端最常用的,必然是要与html之间进行交互.简单总结 正文 第一种形式 js文件 //登录方法 function login(username, password) {$.ajax( ...
- iOS下JS与OC互相调用(五)--UIWebView + WebViewJavascriptBridge
WebViewJavascriptBridge是一个有点年代的JS与OC交互的库,使用该库的著名应用还挺多的,目前这个库有7000+star.我去翻看了它的第一版本已经是4年前了,在版本V4.1.4以 ...
- iOS下JS与OC互相调用(四)--JavaScriptCore
前面讲完拦截URL的方式实现JS与OC互相调用,终于到JavaScriptCore了.它是从iOS7开始加入的,用 Objective-C 把 WebKit 的 JavaScript 引擎封装了一下, ...
- iOS下JS与OC互相调用(二)--WKWebView 拦截URL
在上篇文章中讲述了使用UIWebView拦截URL的方式来处理JS与OC交互. 由于UIWebView比较耗内存,性能上不太好,而苹果在iOS 8中推出了WKWebView. 同样的用WKWebVie ...
- iOS下JS与OC互相调用(一)--UIWebView 拦截URL
1.在JS 中做一次URL跳转,然后在OC中拦截跳转.(这里分为UIWebView 和 WKWebView两种,去年因为还要兼容iOS 6,所以没办法只能采用UIWebView来做.) 2.利用WKW ...
最新文章
- 快速多尺度人脸检测2--Multi-Scale Fully Convolutional Network for Face Detection in the Wild
- 计算机网络实验(华为eNSP模拟器)——第四章 配置静态路由、动态路由
- 世界奥运建筑文学第一书 北京奥运长篇纪实第一人
- 文件系统管理相关命令
- 微信“小程序”开发小指南
- 01-03 Linux常用命令-文本处理
- show tables mysql_MySQL_解析MYSQL显示表信息的方法,在用mysql时(show tables),有时候 - phpStudy...
- 我为什么放弃使用MyBatis3的Mapper注解
- 阿里云服务器 发送邮件无法连接smtp的解决方案
- Sketch MAC破解
- Java实现动态切换IP的方法(一)
- oracle 建同义词语句,Oracle 同义词的创建
- Justice 「未见系列 2」随夏而至,总有一款让你心动的配色!
- win10下Linux子系统(ubuntu)开启并配置(shell主题,设置中文环境,图形界面...)
- android 文字倾斜,TextView中文本倾斜
- 企业产品品牌如何打造?招商加盟数字化怎么做?
- 正则匹配过滤字母和数字
- 记录关于利用txt文件划分训练集、测试集与验证集
- 服务器安装jkd1.8运行jar以及一系列的操作
- 计算机音乐怎么在指纹手机上设置,win7笔记本怎么设置指纹密码-win7开机音乐,windows7开机音乐原版...
热门文章
- 【不了解你就OUT了】云原生基本原则
- 这是一则计算机视觉顶级会议CVPR与腾讯的爆闻,啥?
- sql server tcp 信号灯超时时间已到_「图文详解」TCP为啥要3次握手和4次挥手?3次挥手不行吗?...
- cad多个窗口并排显示_你早该这么做!并排查看Excel工作表其实一个小动作就搞定!...
- jre for mac 删除_在 Mac 的 Docker Desktop 中运行 K8s
- vue+vant 移动端H5 商城项目_02
- Sublime Text批量删除空白行
- Git 工作区恢复暂存区操作总览
- Intellij Idea 离线安装插件
- (vue基础试炼_05)简单组件之间的传值