WKWebView не разрешает доступ к камере в приложении - PullRequest
0 голосов
/ 18 июня 2019

Мы пытаемся сделать конференц-звонок с несколькими пользователями, поэтому, используя сервер Kurento, мы добились этого, и он работает в браузере Safari. Но когда дело доходит до реализации в WebView / WKWebView. Он даже не запрашивает разрешения.

@IBOutlet weak var webViewContainer: UIView!
var webView: WKWebView!

override open func loadView() {
    super.loadView()

    let webConfiguration = WKWebViewConfiguration()
    webConfiguration.ignoresViewportScaleLimits = true
    webConfiguration.suppressesIncrementalRendering = true
    webConfiguration.allowsInlineMediaPlayback = true
    webConfiguration.allowsAirPlayForMediaPlayback = false
    webConfiguration.allowsPictureInPictureMediaPlayback = true
    webConfiguration.mediaTypesRequiringUserActionForPlayback = .all
    webConfiguration.requiresUserActionForMediaPlayback = true
    webView = WKWebView(frame: webViewContainer.frame, configuration: webConfiguration)
    webView.uiDelegate = self
    webView.navigationDelegate = self
    webView.sizeToFit()
    webView.backgroundColor = .black
    webView.isOpaque = false
    self.webViewContainer.addSubview(webView)

}

func webContentController()-> WKUserContentController {
    let contentController = WKUserContentController()
    let script = try! String(contentsOf: Bundle.main.url(forResource: "WebRTC", withExtension: "js")!, encoding: String.Encoding.utf8)
    contentController.addUserScript(WKUserScript(source: script, injectionTime: WKUserScriptInjectionTime.atDocumentStart, forMainFrameOnly: true))
    contentController.add(self, name: "callbackHandler")
    return contentController
}

override func viewDidLoad() {
    super.viewDidLoad()
    guard let url = URL (string: urlStr) else { return
    }
    let myRequest = URLRequest(url: url)
    self.webView.load(myRequest)
}

Я даже пробовал эту ссылку в safariViewController, но она не запрашивает разрешения камеры.

Ответы [ 2 ]

0 голосов
/ 18 июня 2019

На данный момент это известное ограничение WKWebView, подробнее см. проблема с хромом

0 голосов
/ 18 июня 2019

Это

Вы выполнили шаги из документации?Наиболее важной частью является то, что NSCameraUsageDescription / NSMicrophoneUsageDescription должен присутствовать в info.plist файле

...