如何将数据从 swift 传递到 javascript?

2024-07-01

我知道如何将数据从 javascript 传递到 swift,但不知道如何将数据从 swift 传递到 javascript。

我用来将数据从 javascript 传递到 swift 的方法如下:

<head>

    <title>Test</title>
    <meta charset="UTF-8">
</head>
<body>
    <h1>WebView Test 3</h1>
    <script>
        function callNativeApp () {
            try {
                webkit.messageHandlers.callbackHandler.postMessage("Here");
            } catch(err) {
                console.log('The native context does not exist yet');
            }
        }
    callNativeApp();
        </script>
</body>
import UIKit

import WebKit

class ThirdViewController: UIViewController,WKScriptMessageHandler{


    override func viewDidLoad() {

        super.viewDidLoad()

        let configuration=WKWebViewConfiguration()

        let controller=WKUserContentController()


        controller.addScriptMessageHandler(self, name: "callbackHandler")


        configuration.userContentController=controller

        let webView=WKWebView(frame: self.view.frame, configuration: configuration)

        let url=NSBundle.mainBundle().URLForResource("test3", withExtension: "html")

        let request=NSURLRequest(URL: url!)

        self.view=webView

        webView.loadRequest(request)
    }

    func userContentController(userContentController: WKUserContentController, didReceiveScriptMessage message: WKScriptMessage) {

        if(message.name == "callbackHandler"){
            print("callbackHandler: \(message.body)")
        }



    }


}

如您所知,您通过调用 postMessage 将信息传递给 Swift。

要将信息从 Swift 传递到浏览器,您只需调用evaluateJavascript像这样:

let num1 = 4
let num2 = 8

webView.evaluateJavaScript("addTwoNumbers(\(num1), \(num2);")  { (result, error) in
                guard error == nil else {
                    print("there was an error")
                    return
                }

                print(Int(result))
            }

对于这个特定的代码来做任何事情,你需要一个addTwoNumbersJavascript 中的函数处理该函数并完成某些操作。

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

如何将数据从 swift 传递到 javascript? 的相关文章

  • React Native 上无法识别的字体系列

    我在使用 React Native 时遇到了一个特殊的错误 在我的里面button js我在做 import Icon from react native vector icons MaterialIcons const icon Icon
  • Swift animate WithDuration 语法是什么?

    我正在将旧应用程序移植到 Xcode 7 beta 但我的动画出现错误 无法使用类型的参数列表调用 animateWithDuration 双精度 延迟 双精度 选项 无 动画 gt 完成度 无 这是代码 UIView animateWit
  • javascript 中可滚动区域/div 的增量单位?

    在 javascript 中我可以确保我的大 div 垂直滚动 仅以 比方说 16 像素为单位 在 Java 中 这些被称为 增量单位 我在 javascript 中找不到类似的东西 我想确保部分滚动时的某个区域 div 始终是视图 16
  • JavaScript 可以在重新加载后保持任何状态吗?

    有没有办法让 JavaScript 通过重新加载来保存任何变量 如果用户点击重新加载按钮 一旦页面重新加载 JavaScript 是否会保留任何状态 建议 Cookie HTML 5 网络存储https www w3schools com
  • 使用 Javascript 隐藏数据网格列?

    我有一个包含大约 20 列的 net 数据网格 我需要使用 JavaScript 通过单击按钮来切换列的可见性 有任何想法吗 您想使用 COLGROUP 来执行此操作 否则您必须应用样式every细胞开启everyrow 这将非常低效 并且
  • 使用 getElementById 获取锚标记的对象

    anchorobject document getElementById backbutton alert anchorobject a href http www hotmail com back a 上面的代码提醒 href 属性字符串
  • React 组件使用 useState 渲染两次

    当没有任何东西被用来触发重新渲染组件时 我真的很难弄清楚发生了什么 Events js当我删除组件时 组件渲染两次useState 来自Event js它渲染一次 但我需要保留它 当我使用useEffect 在事件组件内 第四次渲染 我只是
  • Next.js 切换 div 标签的显示

    Code export default function Header let showMe false function toggle showMe showMe return lt gt
  • 斯威夫特 NSNotificationCenter?

    我正在尝试让 UITextViewTextDidChangeNotification 正常工作 我是 NSNotificationCenter 的新手 所以我很难理解到底发生了什么 我在故事板中有一个 UITextView 我在 ViewC
  • Tensorflow.js 与 React-Native

    我知道tensor flow js是一个以网络为中心的库 但出于好奇 我也在react native上尝试了它 它有点有效 它仅适用于调试模式 并在调试模式关闭时抛出错误 错误说窗口 位置 搜索不是一个对象 经过一些研究 我发现窗口对象是在
  • 根据特殊性对一组 CSS 选择器进行排序

    如何根据 JS 函数中的 CSS 特殊性对一组 CSS 选择器进行排序 function SortByCssSpecificity input array of css selectors return sorted array of cs
  • Javascript:单击正文中除其中一个元素之外的任何位置

    我希望能够单击正文中除该特定元素之外的任何位置 我无法找出我所做的代码有什么问题 当我单击一个特定元素时 except inside body 我不想让它隐藏 但是当我点击body它应该隐藏 HTML
  • d3.js 雷达图 - 填充线条之间

    我正在尝试在其中两个三角形之间创建填充 例如在红色和绿色三角形之间创建红色填充 有人知道如何做到这一点吗 我见过另一个雷达图的例子 我相信它做了类似的事情 尽管我认为他们使用CSS而不是d3创建填充 使用径向图用 mbostock 的答案解
  • Javascript“悬停时”循环

    任何人都可以帮助我解决这个问题 我有一个按钮 当悬停时会触发一个操作 但我希望只要按钮悬停就重复它 我很感激任何解决方案 无论是在 jquery 还是纯 javascript 中 这是我的代码此时的样子 在 jquery 中 var scr
  • socket.io 在连接时发出

    刚接触 socket io 并进行试验 这个应用程序非常简单 当我单击显示按钮时 屏幕上会实时出现图像 我有 2 个问题 我的主要问题 添加后 图像在所有客户端上都显示良好 我现在的目标是让所有连接的新客户端都能看到相同的数据 例如 如果我
  • 创建具有 async 属性的脚本标签

    我正在注入这样的脚本 var script
  • 从 Firefox 扩展打开当前选项卡/窗口中的 URL

    我正在创建一个 Firefox 扩展 从菜单项打开当前选项卡中的 URL 的 javascript 是什么 例如在我的overlay xul 文件中 我有以下行
  • 从 Verdaccio 软件包版本历史记录中删除版本

    我使用取消发布版本npm unpublish
  • 与 Chrome 内容安全策略配合使用的 Javascript 模板引擎

    Chrome API 的清单版本 2 删除了执行不安全评估的功能 这意味着使用 eval 函数或通常从文本动态创建函数 看起来大多数 如果不是全部 Javascript 模板引擎都会这样做 我使用的是 Jaml 但我尝试了其他几个 如bac
  • 将 swift 变量包装在可选变量中的简写?

    Swift 允许我们使用速记符号str 打开可选的包装 但如果我们想做相反的事情呢 假设我有一个变量 var str String String 是否有任何简写符号可以将其转换为可选 即String or String 例如我想做类似的事情

随机推荐

  • Put 和幂等

    如果您的模型包含一个名为 创建 和 更新 的字段 当您使用 PUT 将内容更新到此记录时 是否应该将created设置为数据创建或修改的时间 由于 PUT 是幂等的 因此它不应该依赖于先前的值 既然updated总是在发出请求时被修改 那么
  • 如果有空格或非数字字符,HTML5 输入类型=数字值在 Webkit 中为空?

    这对我来说是奇怪的行为 但在 Webkit 浏览器 Chrome Safari notFirefox 如果我在一个数字字符串中包含一个空格
  • 使用导入模块对 angular2 组件进行单元测试

    我正在尝试在使用 angular material2 的组件上编写测试 但是当我将其添加到我的 testModule 声明中时 我得到 Error Template parse errors md card title is not a k
  • 如何将自定义样式附加到 zf2 表单中

    也许这是一个显而易见的问题 但您能否告诉我如何将自定义 css 样式添加到 zend Framework 2 中标准视图助手创建的表单中 我试图将一些样式附加到 ZfcUser 创建的表单中 分配类属性 this gt add array
  • Android Studio 使用另一个 AAR 文件和里面的 jar 创建 AAR

    我正在使用另一个 aar 和 jar 文件依赖项创建 AAR 文件 我已成功创建 aar 发布文件 然后 我将新的 AAR 文件导入到示例项目中 该项目运行良好 当要访问 aar 和 jar 类时 它显示未找到类定义 error 注意 首先
  • 如何使用 difftool 比较 .odt 文件? kdiff3 diff 输出不可读的字符

    在 git 中我试图使用 gitattributes使用 difftool 比较 odt 文件 libreoffice writer 文件 遵循本指南 http www verimag imag fr moy opendocument ht
  • 如何在AppCompatActivity中显示带有图标和文本的菜单项

    我在 xml 文件中尝试了不同的组合 menu menu
  • Altair alt.condition 中的动态名称

    我按照此示例创建一个对负值进行条件颜色格式化的条形图 import altair as alt from vega datasets import data source data us employment alt Chart sourc
  • 如何使用 preg_match 在数组中搜索?

    如何使用 preg match 在数组中搜索 Example 在这篇文章中 我将为您提供三种不同的方法来完成您的要求 我实际上建议使用最后一个片段 因为它最容易理解并且代码非常简洁 如何查看数组中哪些元素与我的正则表达式匹配 有一个函数专门
  • 如何将 ASP.NET 网站(或 Web 应用程序)嵌入到另一个网站中?

    我对 ASP NET 的经验很少 在开始编写我的第一个网站 应用程序 这将是一个校准实用程序 之前 我正在做一些自我训练 该实用程序如何工作现在不是我关心的问题 然而 该实用程序最终需要嵌入到其他人的网站中 或者只是作为包含我的代码的页面的
  • AngularJS $http vs 服务 vs ngResource

    我想了解使用简单的方法的优点和缺点 http向服务器发出请求和 或将该请求包装在服务中 而不是使用 ngResource 对象 与 RESTful 资源相关的明显内容除外 据我了解 http请求级别较低 但非常灵活且可配置 而在处理 RES
  • 比较没有日期的时间 ​​swift3

    我正在使用 API 来获取每天五次的时间列表 作为 AM PM 格式的字符串 不带日期 上午 4 30 下午 1 00 下午 3 20 下午 6 40 下午 9 10 我想做的是在屏幕上显示下一个时间取决于iPhone上的当前时间 因此 如
  • SQL Server - INSERT 后返回值

    我试图在 INSERT 语句后获取键值 例子 我有一个包含属性名称和 ID 的表 id 是生成的值 INSERT INTO table name VALUES bob 现在我想在同一步骤中取回 id 这是怎么做到的 我们使用的是 Micro
  • NoCaptcha 返回错误 invalid-json

    我将 Google 时髦的 ReCaptcha NoCaptcha 集成到一个简单的 html5 表单中 在本地主机上它可以工作 但是在线测试它总是返回错误 invalid json 这是我的代码的一部分 secret TEHSEHCRET
  • std::transform 到任意容器

    我想编写接收的通用函数container1有价值观 a1 an 并返回另一个container2有价值观 convert a1 convert an If container2 is std vector 问题很简单 std transfo
  • Bootstrap 导航栏不会切换

    我对使用 Bootstrap 相当陌生 并且希望你们中的一位专业人士能够向我展示我在哪里犯了错误 我想要实现的目标 我正在使用 Bootstrap 开发一个响应式网站 我希望我的导航栏固定在顶部 并且当网页缩小到移动尺寸时 我希望我的导航栏
  • 从 NumPy 数组中随机选择单元格 - 无需替换

    我正在 NumPy 中编写一些建模例程 需要从 NumPy 数组中随机选择单元格并对它们进行一些处理 必须选择所有单元格而不进行替换 例如 一旦选择了单元格 就不能再次选择它 但最后必须选择所有单元格 我正在从 IDL 过渡 在那里我可以找
  • 由模块中定义的另一个方法覆盖方法

    我想定义一个实例方法Date next第二天返回 所以我做了一个DateExtension模块 像这样 module DateExtension def next symb day dt DateTime now day gt Date n
  • 使用 openssl 加密并使用 AES 128、ecb 模式在 iPhone 上解密

    Update 找到了解决方案 我将很快用实际的工作代码和命令更新这个问题 客户端正在使用 C 加密服务器端的文件 我需要在 iPhone 应用程序中对其进行解密 我的客户端可以在他这边加密和解密 我在iPhone上也可以加密和解密 但是我们
  • 如何将数据从 swift 传递到 javascript?

    我知道如何将数据从 javascript 传递到 swift 但不知道如何将数据从 swift 传递到 javascript 我用来将数据从 javascript 传递到 swift 的方法如下 h1 WebView Test 3 h1