带有地理位置网站的 Flutter iOS webview 应用程序不会询问位置权限,即使 info.plist 已调整

Posted

技术标签:

【中文标题】带有地理位置网站的 Flutter iOS webview 应用程序不会询问位置权限,即使 info.plist 已调整【英文标题】:Flutter iOS webview app with Geolocation website doesn't Ask For Location Permission even info.plist is adjusted 【发布时间】:2021-09-15 12:09:22 【问题描述】:

我正在尝试使用需要位置权限才能使用地理定位 javascript 的网站制作 webview 应用程序。我尝试了一些快速的方法来启用,但不幸的是无法管理它。 wkwebview-app-doesnt-ask-for-location-permission

在颤振方面,我使用flutter_webview_plugin 启用了地理定位和javascript,我在info.plist 中添加了相同的东西。我还需要做些什么才能获得许可并为网站启用位置?提前致谢

  child: WebviewScaffold(
            //mediaPlaybackRequiresUserGesture: true,
            debuggingEnabled: true,
            url: 'https://nakliyemvar.com/isveren/giris.php',
            scrollBar: false,
            //hidden: true,
            withZoom: false,
            withJavascript: true,
            geolocationEnabled: true,


            //withLocalUrl: true,
            appCacheEnabled: true,
          ),

info.plist

<key>NSLocationAlwaysUsageDescription</key>
<string>asd</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>asd.</string>

【问题讨论】:

【参考方案1】:

您需要在 Swift 端检查位置授权状态,如果未确定,您需要在打开 web 视图之前请求它。像这样的:

private func manageLocationPermission() 
    let authorizationStatus = CLLocationManager.authorizationStatus()
    switch authorizationStatus 
    case .notDetermined:
        CLLocationManager().requestAlwaysAuthorization()
    case .authorizedAlways, .authorizedWhenInUse:
       // Open the webview
    case .denied:
       // Notify the user about it
    case .restricted:
       break
    

【讨论】:

感谢您的回答。它更有可能解决这个问题吗? ***.com/questions/68236807/…如何将它与我的代码集成? 看看这个:***.com/questions/58680190/…这是回答你的问题吗?

以上是关于带有地理位置网站的 Flutter iOS webview 应用程序不会询问位置权限,即使 info.plist 已调整的主要内容,如果未能解决你的问题,请参考以下文章

Flutter web 在带有深色主题的 Android 浏览器中的颜色错误

Map in Flutter for Web - 将数据从 JS 发送到 Flutter for Web

Flutter - html页面内带有href链接的WebView错误

发送带有附件的电子邮件 Flutter(IOS)

带有不兼容插件的 Flutter Web

Firebase 托管上的 Flutter 网站适用于域 1,但不适用于域 2