我使用 WkWebview 渲染器實作了一個 webview。
全屏在 ipone 上運行良好。但它不適用于 iPad。
將出現如下圖所示的影像。

我看到一篇文章說要做webViewConfiguration.allowsInlineMediaPlayback = true并應用它,但它沒有用。有什么問題?
這是我的代碼。
public class MyWebViewRenderer : WkWebViewRenderer, IWKScriptMessageHandler, IWKNavigationDelegate
{
WKUserContentController userController;
public MyWebViewRenderer() : this(new WKWebViewConfiguration())
{
}
public MyWebViewRenderer(WKWebViewConfiguration config) : base(config)
{
userController = config.UserContentController;
var script = new WKUserScript(new NSString(_JavascriptFunction_CSharpOpenWeb), WKUserScriptInjectionTime.AtDocumentEnd, false);
userController.AddUserScript(script);
userController.AddScriptMessageHandler(this, "invokeAction_CSharpOpenWeb");
}
protected async override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);
if (e.OldElement != null)
{
userController.RemoveAllUserScripts();
userController.RemoveScriptMessageHandler("invokeAction_CSharpOpenWeb");
MyWebView myWebView = e.OldElement as MyWebView;
myWebView.Cleanup();
}
if (e.NewElement != null)
{
this.NavigationDelegate = new MyNavigationDelegate(this);
var webView = (MyWebView)Element;
webView.UriChanged = async (s1, e1) =>
{
NSUrl nsurl = new NSUrl(webView.Uri);
Configuration.AllowsInlineMediaPlayback = true;
NSMutableUrlRequest request = new NSMutableUrlRequest(nsurl);
await SetCookies();
LoadRequest(request);
};
if (!string.IsNullOrEmpty(webView.Uri))
{
NSUrl nsurl = new NSUrl(webView.Uri);
NSMutableUrlRequest request = new NSMutableUrlRequest(nsurl);
await SetCookies();
LoadRequest(request);
}
}
}
}
你能告訴我我做錯了什么嗎?
uj5u.com熱心網友回復:
Configuration.AllowsInlineMediaPlayback = true;是你想要的相反。
將其設定為false:
Configuration.AllowsInlineMediaPlayback = false;
- 如果這不能解決它,那么您可能需要在代碼中更早地執行此操作。
看看它在建構式中完成時是否有效:
public MyWebViewRenderer() : this(new WKWebViewConfiguration())
{
EnsureFullScreen();
...
}
public MyWebViewRenderer(WKWebViewConfiguration config) : base(config)
{
EnsureFullScreen();
...
}
private void EnsureFullScreen()
{
if (Control.Configuration.AllowsInlineMediaPlayback)
Configuration.AllowsInlineMediaPlayback = false;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/402243.html
標籤:沙马林 xamarin.forms xamarin.ios
上一篇:XamarinForms:Android渲染器的已處理物件問題
下一篇:系結不會重繪標簽的內容
