gpt4 book ai didi

javascript - 使用 Swift 在 iOS WKWebview 中捕获 Javascript 事件

转载 作者:IT王子 更新时间:2023-10-29 05:12:58 24 4
gpt4 key购买 nike

我正在使用网络编程语言构建一个应用程序,并希望在用户点击 HTML 按钮时启动相机。因为我希望我的相机 View 是自定义 View ,所以我需要使用 Swift 来设计它。因此,当用户点击这个 HTML 按钮时,我想在 Swift 中“捕捉”这个点击,这样我就可以启动我的原生相机 View 。

我知道可以用 WKWebview 来完成,但我真的不知道该怎么做。

例如,我的 Javascript (jQuery) 代码可能如下所示:

// User clicks to start the native camera with Swift
$(".camera_button").click(function() {
// Function to call the camera view from JS to Swift
});

你能帮我做吗?

谢谢。

最佳答案

根据@Alex Pelletier 的回答,这对我很有帮助,这是我的问题的解决方案。

在我的“loadView()”函数中,这是我拥有的:

let contentController = WKUserContentController();
contentController.addScriptMessageHandler(
self,
name: "callbackHandler"
)

let config = WKWebViewConfiguration()
config.userContentController = contentController

webView = WKWebView(frame: CGRectZero, configuration: config)
webView.navigationDelegate = self
view = webView

我处理发送到 Swift 的 Javascript 事件的函数:

func userContentController(userContentController: WKUserContentController, didReceiveScriptMessage message: WKScriptMessage)
{
if(message.name == "callbackHandler") {
print("Launch my Native Camera")
}
}

...最后,我的 Javascript (jQuery) 代码在我的相机按钮(HTML 格式)上发生点击时:

$(document).ready(function() {

function callNativeApp () {
try {
webkit.messageHandlers.callbackHandler.postMessage("camera");
} catch(err) {
console.log('The native context does not exist yet');
}
}

$(".menu-camera-icon").click(function() {
callNativeApp();
});
});

我希望它能帮助其他人 :-) !

关于javascript - 使用 Swift 在 iOS WKWebview 中捕获 Javascript 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34574864/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com