DSBridge-IOS icon indicating copy to clipboard operation
DSBridge-IOS copied to clipboard

请问 dsuiDelegate 与 requestMediaCapturePermissionFor 代理实现

Open liuyu8848 opened this issue 3 years ago • 2 comments

你好,我在设置 webView1.dsuiDelegate = self 之后

H5页面请求录音时 并没有触发 WKUIDelegate 的 func webView(_ webView: WKWebView, requestMediaCapturePermissionFor 方法

于是我将 webView1.uiDelegate = self 之后,requestMediaCapturePermissionFor可以触发,但是所有的桥接功能都失效了

谢谢

liuyu8848 avatar Aug 12 '22 00:08 liuyu8848

因为DWKWebView已经持有UIDelegate,但是作者暂时没有实现该代理方法,需要在DWKWebView.m中增加该代理的实现,如: - (void)webView:(WKWebView *)webView requestMediaCapturePermissionForOrigin:(WKSecurityOrigin *)origin initiatedByFrame:(WKFrameInfo *)frame type:(WKMediaCaptureType)type decisionHandler:(void (^)(WKPermissionDecision))decisionHandler API_AVAILABLE(ios(15.0)){ if (self.DSUIDelegate && [self.DSUIDelegate respondsToSelector:@selector(webView:requestMediaCapturePermissionForOrigin:initiatedByFrame:type:decisionHandler:)]) { return [self.DSUIDelegate webView:webView requestMediaCapturePermissionForOrigin:origin initiatedByFrame:frame type:type decisionHandler:decisionHandler]; } decisionHandler(WKPermissionDecisionGrant); }

QinYaffeei avatar Aug 29 '23 03:08 QinYaffeei

iOS17 点允许后,前端提示 notAllowed。而直接实现WebView自己的uiDelegate却不会有该问题

aoxiaojun666 avatar Jan 09 '24 04:01 aoxiaojun666