簡體   English   中英

每次應用啟動時都會調用 WKWebView 請求 DeviceMotion 和 DeviceOrientation 的權限

[英]WKWebView Request permission for DeviceMotion and DeviceOrientation is called every time app launches

有沒有辦法只請求一次 DeviceMotion 和 DeviceOrientation 權限,而不是每次應用啟動時。 我正在請求使用權限

webView.evaluateJavaScript("DeviceMotionEvent.requestPermission().then(response => { if (response == 'granted') {window.addEventListener('devicemotion', (e) => {})}}).catch(console.error)")

webView.evaluateJavaScript("DeviceOrientationEvent.requestPermission().then(response => { if (response == 'granted') {window.addEventListener('deviceorientation', (e) => {})}}).catch(console.error)")

那么有沒有辦法始終授予權限?

您應該使用Userdefaults來存儲一些標志。 一旦您請求權限,在Userdefaults為該標志設置一些值。 當您的應用程序啟動時,請檢查您是否設置了該標志。 就像是,

    if UserDefaults.standard.bool(forKey: "openedOnce") {

    } else {
        webView.evaluateJavaScript("DeviceMotionEvent.requestPermission().then(response => { if (response == 'granted') {window.addEventListener('devicemotion', (e) => {})}}).catch(console.error)")
        webView.evaluateJavaScript("DeviceOrientationEvent.requestPermission().then(response => { if (response == 'granted') {window.addEventListener('deviceorientation', (e) => {})}}).catch(console.error)")
    }

    UserDefaults.standard.set(true, forKey: "openedOnce")
    UserDefaults.standard.synchronize()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM