gpt4 book ai didi

ios - 单击 webViewKit 按钮的用户权限

转载 作者:行者123 更新时间:2023-11-30 10:53:45 25 4
gpt4 key购买 nike

使用 swift 4 和 IOS 12,我正在使用 webViewKit 加载网站。 Web应用程序的功能之一是扫描二维码,我已经成功加载了网站,但我仍然在努力如何访问设备摄像头来扫描二维码,在Android中一切正常,包括使用webView onPermissionRequest方法的二维码扫描仪。我已经尝试过这个 Key : Privacy - Camera Usage Description in info.plist 并在此处添加这些代码行 AVCaptureDevice.authorizationStatus(for: .video)在按下网页按钮扫描二维码之前加载网址。根据我们的网络开发人员的说法,按下这个按钮会执行一个 JavaScript 未定义函数,但我不知道如何让 webViewKit 响应这个按钮点击事件,最难的部分是没有日志或 NSLogs 来评估。我刚接触IOS开发已经快一个月了。谢谢

var WebCodeCamJS = function(element) {
'use strict';
this.Version = {
name: 'WebCodeCamJS',
version: '2.7.0',
author: 'Tóth András',
};
var mediaDevices = window.navigator.mediaDevices;
mediaDevices.getUserMedia = function(c) {
return new Promise(function(y, n) {
(window.navigator.getUserMedia || window.navigator.mozGetUserMedia || window.navigator.webkitGetUserMedia).call(navigator, c, y, n);
});
}

HTMLVideoElement.prototype.streamSrc = ('srcObject' in HTMLVideoElement.prototype) ? function(stream) {
this.srcObject = !!stream ? stream : null;
} : function(stream) {
if (!!stream) {
this.src = (window.URL || window.webkitURL).createObjectURL(stream);
} else {
this.removeAttribute('src');
}
};

上面的代码是一个名为 webcodecamjs.js 的 js 函数,它是通过网页上的按钮单击事件执行的。我发现解决方案here有类似的问题,但我不太确定如何实现它,它说

  1. Now Add JS file (WebRTC.js) that defines various WebRTC classes, functions & passes the calls to the WKWebView.
  2. In the WKWebView inject the script at the document start:

我应该把这个 WebRTC.js 文件放在哪里?我所做的是在我的 ios 项目中创建一个新文件并将其命名为 WebRTC.js ,我还尝试将其重命名为 webcodecamjs.js 就像我们在 web js 文件中所做的那样,我如何在 func viewDidAppear 中做到这一点

let contentController = WKUserContentController()

contentController.add(self, name: "callbackHandler")
let script = try! String(contentsOf: Bundle.main.url(forResource: "webcodecamjs", withExtension: "js")!, encoding: String.Encoding.utf8)
contentController.addUserScript(WKUserScript(source: script, injectionTime: WKUserScriptInjectionTime.atDocumentStart, forMainFrameOnly: true))
let preferences = WKPreferences()
preferences.javaScriptEnabled = true

let configuration = WKWebViewConfiguration()
configuration.preferences = preferences
configuration.userContentController = contentController
configuration.allowsPictureInPictureMediaPlayback = true


webView.navigationDelegate = self
webView.configuration.preferences = configuration.preferences
WKWebView.load(webView)(NSURLRequest(url: NSURL(string: encodedLoginUrl)! as URL) as URLRequest)

webView 是一个

@IBOutlet weak var webView: WKWebView

未按如下方式声明

var webView: WKWebView

这就是为什么我不能做下面这样的事情,因为它给了我“弱”警告

webView = WKWebView(frame: CGRect.zero, configuration: config)

最佳答案

您可以添加代码片段来检查吗?

关于ios - 单击 webViewKit 按钮的用户权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54184933/

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