Notice
Recent Posts
Recent Comments
Link
투케이2K
348. (ios/swift5) [iOS 15 이상] requestMediaCapturePermissionFor 사용해 WKWebview 웹뷰 카메라, 오디오 권한 부여 수행 본문
IOS
348. (ios/swift5) [iOS 15 이상] requestMediaCapturePermissionFor 사용해 WKWebview 웹뷰 카메라, 오디오 권한 부여 수행
투케이2K 2023. 10. 14. 10:04[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT5
[Web 웹 : 소스 코드]
// [html 최초 로드 및 이벤트 상시 대기 실시]
window.onload = async function() {
console.log("");
console.log("=========================================");
console.log("[window onload] : [start]");
console.log("=========================================");
console.log("");
// [퍼미션 요청] : [async 비동기 함수 내에서 권한 호출 필요]
const localStream = await navigator.mediaDevices.getUserMedia({
video: { width: { ideal: 1280 }, height: { ideal: 720 } },
audio: true,
}); // [웹 카메라 권한 요청]
};
[Xcode 설정 : info plist]
[Swift : 소스 코드]
// -----------------------------------------------------------------------------------------
// MARK: - [웹뷰 getUserMedia 퍼미션 확인]
// -----------------------------------------------------------------------------------------
// 필요 설정 : webView.uiDelegate = self
// -----------------------------------------------------------------------------------------
// 필요 설정 : webView.uiDelegate = webViewConfiguration.allowsInlineMediaPlayback = true
// -----------------------------------------------------------------------------------------
// 조 건 : 해당 퍼미션 콜백 확인 함수는 ios 15 이상 사용 가능
// -----------------------------------------------------------------------------------------
// 설 명 : 최초 퍼미션 권한 확인 팝업창 호출 된 이후 >> 권한 부여 시 >> 같은 origin 주소인 경우 중복 팝업창 자동 허용
// -----------------------------------------------------------------------------------------
@available(iOS 15.0, *)
func webView(_ webView: WKWebView,
requestMediaCapturePermissionFor
origin: WKSecurityOrigin,initiatedByFrame
frame: WKFrameInfo,type: WKMediaCaptureType,
decisionHandler: @escaping (WKPermissionDecision) -> Void){
S_Log._D_(description: "웹뷰 getUserMedia 퍼미션 권한 자동 부여 수행", data: [ "URL :: \(String(describing: webView.url?.description ?? ""))" ])
decisionHandler(.grant)
}
[결과 출력]
================================================================
LOG :: CLASS PLACE :: A_Webview.swift :: webView(_:requestMediaCapturePermissionFor:initiatedByFrame:type:decisionHandler:) :: 1032
-------------------------------------------------
LOG :: NOW TIME :: 2023-10-14 09:42:06
-------------------------------------------------
LOG :: DESCRIPTION :: 웹뷰 getUserMedia 퍼미션 권한 자동 부여 수행
-------------------------------------------------
LOG :: URL :: file:///private/var/containers/Bundle/Application/696FAEEE-BF1E-4C59-9A33-9DB2767FDA72/swiftProject.app/javaScriptBridge.html
================================================================
반응형
'IOS' 카테고리의 다른 글
Comments