写在前面

本文将介绍如何使用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间相互传值调用相关推荐

  1. JS和OC间的通信(使用JavaScriptCore)

    JavaScriptCore 时代的通讯 iOS 7 开始,苹果提供了一个叫作 JavaScriptCore 的框架,使用 JavaScriptCore 框架可以实现 OC 和 JS 的互相调用,而不 ...

  2. js静态页面间的传值

    一:JavaScript静态页面值传递之URL篇 能过URL进行传值.把要传递的信息接在URL上. 例子: 参数传出页面Post.htm->   <input type="tex ...

  3. vue组件间相互传值

    一般vue的组件之间的传值分为:父组件传子组件,子组件传父组件,任意组件之间传值. 1.父组件传子组件:(父组件通过v-bind(可以缩写为 :)发送,子组件通过props接收) //父组件中引入子组 ...

  4. javascript frame框架间函数变量的相互引用 frame间相互传值

    框架编程概述一个HTML页面可以有一个或多个子框架,这些子框架以< iframe> 来标记,用来显示一个独立的HTML页面.这里所讲的框架编程包括框架的自我控制以及框架之间的互相访问,例如 ...

  5. js文件与html相互传值

    前言 js文件是前端最常用的,必然是要与html之间进行交互.简单总结 正文 第一种形式 js文件 //登录方法 function login(username, password) {$.ajax( ...

  6. iOS下JS与OC互相调用(五)--UIWebView + WebViewJavascriptBridge

    WebViewJavascriptBridge是一个有点年代的JS与OC交互的库,使用该库的著名应用还挺多的,目前这个库有7000+star.我去翻看了它的第一版本已经是4年前了,在版本V4.1.4以 ...

  7. iOS下JS与OC互相调用(四)--JavaScriptCore

    前面讲完拦截URL的方式实现JS与OC互相调用,终于到JavaScriptCore了.它是从iOS7开始加入的,用 Objective-C 把 WebKit 的 JavaScript 引擎封装了一下, ...

  8. iOS下JS与OC互相调用(二)--WKWebView 拦截URL

    在上篇文章中讲述了使用UIWebView拦截URL的方式来处理JS与OC交互. 由于UIWebView比较耗内存,性能上不太好,而苹果在iOS 8中推出了WKWebView. 同样的用WKWebVie ...

  9. iOS下JS与OC互相调用(一)--UIWebView 拦截URL

    1.在JS 中做一次URL跳转,然后在OC中拦截跳转.(这里分为UIWebView 和 WKWebView两种,去年因为还要兼容iOS 6,所以没办法只能采用UIWebView来做.) 2.利用WKW ...

最新文章

  1. 快速多尺度人脸检测2--Multi-Scale Fully Convolutional Network for Face Detection in the Wild
  2. 计算机网络实验(华为eNSP模拟器)——第四章 配置静态路由、动态路由
  3. 世界奥运建筑文学第一书  北京奥运长篇纪实第一人
  4. 文件系统管理相关命令
  5. 微信“小程序”开发小指南
  6. 01-03 Linux常用命令-文本处理
  7. show tables mysql_MySQL_解析MYSQL显示表信息的方法,在用mysql时(show tables),有时候 - phpStudy...
  8. 我为什么放弃使用MyBatis3的Mapper注解
  9. 阿里云服务器 发送邮件无法连接smtp的解决方案
  10. Sketch MAC破解
  11. Java实现动态切换IP的方法(一)
  12. oracle 建同义词语句,Oracle 同义词的创建
  13. Justice 「未见系列 2」随夏而至,总有一款让你心动的配色!
  14. win10下Linux子系统(ubuntu)开启并配置(shell主题,设置中文环境,图形界面...)
  15. android 文字倾斜,TextView中文本倾斜
  16. 企业产品品牌如何打造?招商加盟数字化怎么做?
  17. 正则匹配过滤字母和数字
  18. 记录关于利用txt文件划分训练集、测试集与验证集
  19. 服务器安装jkd1.8运行jar以及一系列的操作
  20. 计算机音乐怎么在指纹手机上设置,win7笔记本怎么设置指纹密码-win7开机音乐,windows7开机音乐原版...

热门文章

  1. 【不了解你就OUT了】云原生基本原则
  2. 这是一则计算机视觉顶级会议CVPR与腾讯的爆闻,啥?
  3. sql server tcp 信号灯超时时间已到_「图文详解」TCP为啥要3次握手和4次挥手?3次挥手不行吗?...
  4. cad多个窗口并排显示_你早该这么做!并排查看Excel工作表其实一个小动作就搞定!...
  5. jre for mac 删除_在 Mac 的 Docker Desktop 中运行 K8s
  6. vue+vant 移动端H5 商城项目_02
  7. Sublime Text批量删除空白行
  8. Git 工作区恢复暂存区操作总览
  9. Intellij Idea 离线安装插件
  10. (vue基础试炼_05)简单组件之间的传值