[英]Xamarin WebView : Why Camera shows black screen on physical device?
我有一个 Xamarin Forms 应用程序,它在 Z3E7D16622A52391BD7BF68CAE 中打开一个 html 页面
该页面应该显示设备相机。
我使用 Android 自定义渲染器实现了这一点,如下所示:
public class MyWebViewRenderer : WebViewRenderer
{
Activity mContext;
public MyWebViewRenderer(Context context) : base(context)
{
this.mContext = context as Activity;
}
protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.WebView> e)
{
base.OnElementChanged(e);
Control.Settings.JavaScriptEnabled = true;
Control.ClearCache(true);
Control.SetWebChromeClient(new MyWebClient(mContext));
Control.Settings.BuiltInZoomControls = true;
Control.Settings.SetSupportZoom(true);
Control.ScrollbarFadingEnabled = false;
}
public class MyWebClient : WebChromeClient
{
Activity mContext;
public MyWebClient(Activity context)
{this.mContext = context;}
[TargetApi(Value = 21)]
public override void OnPermissionRequest(PermissionRequest request)
{
mContext.RunOnUiThread(() => {request.Grant(request.GetResources());});
}
}
该应用程序针对 Android 10。
该应用程序和相机在模拟器上正常工作。 然而,在运行 Android 11 的物理设备上,摄像头显示黑屏。
有谁知道为什么cameda不能在物理设备上工作?
谢谢。 问候,
相机总是显示黑屏,因为它没有权限。 如果在物理设备中运行它时没有显示让用户授予权限的对话框,则意味着它没有权限,因此您可以使用 ContextCompat.checkSelfPermission() 方法或执行运行时权限检查检查权限。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.