【发布时间】:2020-01-29 08:05:46
【问题描述】:
我正在使用 Xamarin 编写一个 iOS 本机应用程序。本机应用程序只包含几行代码,它基本上是一个网站的包装器。本机应用程序本身包含一个加载单页应用程序的 WebView。
该网站使用此节点包 (https://www.npmjs.com/package/@zxing/library) 来实现条形码扫描仪。扫描仪使用 iPad 上的摄像头来扫描条形码。当您开始扫描时,网站会请求访问相机的权限,然后启动它开始扫描。
如果我直接通过 iPad 上的 Safari 访问我的网站,则扫描仪可以正常工作。当我调用开始扫描时,Safari 请求访问相机的权限,我授予它,它就可以工作了。
当我使用我的本机应用程序访问网站(同样,它仅包含一个 WebView)时,我从未获得访问相机的权限请求。条形码扫描仪所在的 div 仅显示空白的白色背景。
我已将 NSCameraUsageDescription 标记添加到我的 Info.plist 中,并为其提供了足够长的描述。我添加了对 NuGet 包的引用,该包允许您手动请求相机权限。我还尝试手动进入 iPad 的应用程序设置并以这种方式授予相机权限。没有任何效果。我从来没有被提示访问相机。相机永远不会启动/开始扫描。
我很困惑为什么扫描仪在 Safari 中的 iPad 上工作得非常好,但在本机应用程序中却不能工作?
【问题讨论】:
-
你使用 WKWebView 还是 UIWebView ?如果是 WKWebView,请确保您正在处理回调/委托以显示警报 - stackoverflow.com/a/51667317/3145189
-
您找到解决方案了吗?您使用的是哪个 WebView? WKWebView/UIWebView/SFSafariViewController?
标签: ios xamarin safari permissions camera