簡體   English   中英

Xamarin WebView:為什么相機在物理設備上顯示黑屏?

[英]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.

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