我正在使用网络编程语言构建一个应用程序,并希望在用户单击 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
});
你能帮我做到吗?
Thanks.
根据 @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();
});
});
我希望它能帮助别人:-)!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)