我正在使用Web编程语言构建应用程序,并希望在用户单击HTML按钮时启动相机.由于我希望我的相机视图是自定义的,我需要使用Swift进行设计.因此,当用户点击此HTML按钮时,我想在Swift中“捕获”此单击,以便我可以启动我的原生相机视图.
我知道可以使用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")
}
}
…最后,当我的相机按钮(在HTML中)发生单击时,我的Javascript(jQuery)代码:
$(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();
});
});
我希望它会帮助别人:-)!
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!