- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用 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有类似的问题,但我不太确定如何实现它,它说
- Now Add JS file (WebRTC.js) that defines various WebRTC classes, functions & passes the calls to the WKWebView.
- 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/
使用 swift 4 和 IOS 12,我正在使用 webViewKit 加载网站。 Web应用程序的功能之一是扫描二维码,我已经成功加载了网站,但我仍然在努力如何访问设备摄像头来扫描二维码,在And
我是一名优秀的程序员,十分优秀!