[英]Flutter InAppWebView iOS goes to live broadcast instead of camera
我正在使用flutter_inappwebview package 在我们的 Flutter iOS 应用程序中将我们的网站显示为 web 视图。 网站支持录像,在web上一切正常。
每当用户从应用程序开始录制时,它都会意外地将他们重定向到live broadcast
而不是摄像头。
解释起来有点复杂,所以我附上这个短片:
有什么建议为什么会发生吗? 那是InAppWebView
问题吗?
查看我们在 GitHub 上的讨论。
flutter 医生:
[✓] Flutter (Channel stable, 3.3.7, on macOS 13.0 22A380 darwin-x64, locale en-IL)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 14.1)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2021.2)
[✓] VS Code (version 1.73.1)
[✓] Connected device (2 available)
[✓] HTTP Host Availability
IOS 版本:15.2.1
在flutter_webview_plugin package 上也面临完全相同的问题。
flutter_inappwebview 和 flutter_webview_plugin 包都没有提供有关它们依赖项的完整详细信息,但它们在打开视频录制时都遇到了同样的问题。
我们的GitHub 讨论越来越深入。
从InAppWebViewOptions中删除userAgent
感谢@pichillilorenzo
@programming6131
,他们在我们的GitHub 讨论中帮助我解决了这个问题。
我所要做的就是将allowsInlineMediaPlayback
添加到我的InAppWevViewGroupOption
:
initialOptions: InAppWebViewGroupOptions(
crossPlatform: InAppWebViewOptions(
useShouldOverrideUrlLoading: true,
mediaPlaybackRequiresUserGesture: false,
),
android: AndroidInAppWebViewOptions(
useHybridComposition: true,
),
ios: IOSInAppWebViewOptions(
allowsInlineMediaPlayback: true, // <-- add this line
),
)
根据 Apple 官方文档, allowsInlineMediaPlayback
是一个 boolean 值,表示 HTML5 视频是内联播放还是使用原生全屏 controller。
将此属性设置为YES 以内联播放视频,或设置为 NO 以使用本机全屏 controller。
在 iPhone 上向 HTML 文档添加视频元素时,还必须包含playsinline
属性。 此属性的默认值对于 iPhone 为 NO,对于 iPad 为 YES。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.