Angular/ HTML5 到 iOS WKWebView 通信

2024-05-30

我们正在尝试看看发送信号的最佳选择是什么To iOS WKWebView fromAngular 6,HTML5 项目。

任何示例都会很棒。

我们想要做的是:我们在 Angular 网页上有一个按钮,单击该按钮应该通知 iOS 执行某些操作。 我们在 iOS 中加载 Angular 页面WKWebView.

参考Angular 5 和原生 IOS/Android 通信 https://stackoverflow.com/questions/52591767/angular-5-and-native-ios-android-communication,不是很清楚。如果 ios 和 Angular 方面都有可用的示例,那就太好了。


苹果提供了一个机制WebKit将消息从 HTML 发布到本机:

在您的 HTML 页面中,调用:

window.webkit.messageHandlers.messageHandler.postMessage("Pass your data here...");

where, messageHandler是您的 iOS 代码中收到的消息的名称。"Pass your data here..."是通过以下方式传递到 iOS 的数据messageHandler信息。

在你的 iOS 代码中:

使用 WKUserContentController 添加消息处理程序add(_:name:)方法如下:

webView.configuration.userContentController.add(self, name: "messageHandler")

最后,在你的ViewController代码实现WKScriptMessageHandler的userContentController:didReceiveScriptMessage:方法如:

func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
     if message.name == "messageHandler" {
          // Your Message handler code goes here...            
     }

根据 Apple 文档add(_:name:) method:

添加名称为 name 的脚本消息处理程序 导致 JavaScript 函数 window.webkit.messageHandlers.name.postMessage(messageBody) 在使用用户内容控制器的所有 Web 视图的所有框架中定义。

苹果文档链接 https://developer.apple.com/documentation/webkit/wkusercontentcontroller/1537172-add

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular/ HTML5 到 iOS WKWebView 通信 的相关文章

随机推荐

  • 如何获取数据透视表的 ListObject 对象?

    这个问题最初是作为answer https stackoverflow com a 21321664 2712565作者 休 西格雷夫斯 Hugh Seagraves 关于相关问题的文章 他 想要引用一个工作表上的列表对象 表格 而另一工作
  • Spring Kafka - 如何使用 @KafkaListener 重试

    来自推特的问题 只是想找到一个使用 spring kafka 2 1 7 的简单示例 该示例与 KafkaListener 和 AckMode MANUAL IMMEDIATE 一起使用 以重试上次失败的消息 https twitter c
  • 无法在 Emacs 中打开 plantuml 模式

    我使用的是 Emacs 24 3 1 我安装了MELPA http melpa milkbox net 的版本plantuml mode https github com zwz plantuml mode via M x package
  • 在 r 中的字符串内循环以输出具有向量化值的表达式

    示例数据 gt DF A B C 1 11 22 88 2 11 22 47 3 2 30 21 4 3 30 21 gt r 1 A A i B B i A A i C C i 3 B B i C C i A A i B B i C C
  • 为什么使用 Response 设置后,Request 中的 Cookie 立即可用?

    在页面加载中 如果您立即在下一行中执行 Response Cookies Add 您可以通过 Request Cookies 访问该 cookie 我知道在幕后 cookie 是由 net 添加到 Request Cookies 中的 但原
  • 使用 Nginx 时缺少 HTTP 状态代码名称

    我正在使用 Nginx 将所有 HTTP 请求重定向到 HTTPS 在我的 Spring Boot 应用程序中 这是我正在使用的 nginx 配置 通过它我可以将所有请求重定向到 Https 但是当我这样做时 我得到了状态码返回正确 但没有
  • 使用 Python 2.7 和 MySQLdb 将二进制数据插入 MySQL 中的 blob 列时如何避免编码警告

    我在将二进制数据插入到longblob使用 Python 2 7 中的 MySQLdb 在 MySQL 中的列 但我收到一个编码警告 我不知道如何解决 test py 11 Warning Invalid utf8 character st
  • 在调用 toString() 时如何避免初始化 HibernateProxy?

    我有以下映射 Author Entity Getter Setter public class Author Id GeneratedValue strategy IDENTITY Access PROPERTY private Long
  • 将字符串转换为浮点数列表(在 python 中)

    出于数据存储的目的 我尝试从 txt 文件恢复浮点列表 从字符串中可以看出 a 1 3 2 3 4 5 我想恢复 a 1 3 2 3 4 5 我期待一个简单的解决方案 例如list a 但我找不到类似的东西 Use the AST模块 Ex
  • scala.math.BigDecimal :1.2 和 1.20 相等

    将 Double 或 String 转换为 scala math BigDecimal 时如何保持精度和尾随零 用例 在 JSON 消息中 属性的类型为 String 值为 1 20 但是在 Scala 中读取这个属性并将其转换为 BigD
  • Apache Spark 何时发生混洗?

    我正在优化 Spark 中的参数 并且想确切地了解 Spark 是如何对数据进行洗牌的 准确地说 我有一个简单的字数统计程序 并且想知道spark shuffle file buffer kb如何影响运行时间 现在 当我将此参数设置得非常高
  • Android Studio 1.2.1.1 中 Gradle 项目刷新失败

    我在全新安装的 Android Studio v 1 2 1 1 上创建了示例项目 但遇到了以下错误消息 Gradle project refresh failed in Android Studio 1 2 1 1 见下图 所以我试图在谷
  • 单词预测算法

    我确信有一篇关于此问题的帖子 但我找不到提出这个确切问题的帖子 考虑以下 我们有字典可供使用 我们收到了许多单词段落 我希望能够根据此输入预测句子中的下一个单词 假设我们有几个句子 例如 你好 我的名字是汤姆 他的名字是杰瑞 他去了没有水的
  • Jenkins + Gerrit 触发器未自动构建

    Jenkins 似乎不会自动引入需要 Gerrit 审核的更改 我们正在使用 Gerrit 触发器 另外 如果我尝试手动触发一些 似乎什么也没有发生 Gerrit Trigger管理区域中的 控制 似乎没有多大 闪烁 启动 停止 或 重新启
  • 三.js、PointerLock和碰撞检测

    我正在开发一个 3D 虚拟家庭项目 除了碰撞检测之外 一切正常 我使用 PointerLockControls 来控制相机和移动 但我不确定如何检测每个可能方向的碰撞 为简单起见 我从与 0 0 0 上的简单立方体的向前和向后碰撞开始 ra
  • Asp.net Identity,生成 WebApi 令牌 OAuthGrantResourceOwnerCredentialsContext - 无法使用 Unity 访问 UserManager

    我正在尝试设置一个项目结构 以便拥有 WebApi WebUI 和域层 我已将所有 Asp Net Identity 对象移至 Domain 层 并在此处设置了 ApplicationContext 继承自 IdentityContext
  • 如何针对 IE 进行优化?

    我有一个 JS 密集型应用程序 它在 IE 中运行缓慢 我将花费大约一周的时间来优化 IE 并且我想要一些关于尝试的方向 我发现这个线程引用Drip https ieleak svn sourceforge net svnroot iele
  • 为什么byteArray的长度是22而不是20?

    我们尝试从字符串转换为Byte 使用以下 Java 代码 String source 0123456789 byte byteArray source getBytes UTF 16 我们得到一个长度为 22 字节的字节数组 我们不确定这个
  • pip 安装最新的依赖版本

    当我使用安装包时pip install e 它仅安装不满足的依赖项并忽略依赖项升级 如何在每次运行时安装最新的依赖版本pip install e 我尝试过使用pip install upgrade e 但是使用这个选项没有任何改变 我仍然得
  • Angular/ HTML5 到 iOS WKWebView 通信

    我们正在尝试看看发送信号的最佳选择是什么To iOS WKWebView fromAngular 6 HTML5 项目 任何示例都会很棒 我们想要做的是 我们在 Angular 网页上有一个按钮 单击该按钮应该通知 iOS 执行某些操作 我