I'm trying to integrate webrtc into Xamarin Forms app using webview Android is working fine but in IOS streaming camera not working . I think the problem in IOS WebView render here's my render
public class HybridWebViewRenderer : WkWebViewRenderer, IWKScriptMessageHandler
{
public HybridWebViewRenderer() : this(new WKWebViewConfiguration())
{
}
public HybridWebViewRenderer(WKWebViewConfiguration config) : base(config)
{
config.AllowsInlineMediaPlayback = true;
userController = config.UserContentController;
var script = new WKUserScript(new NSString(JavaScriptFunction), WKUserScriptInjectionTime.AtDocumentEnd, false);
userController.AddUserScript(script);
userController.AddScriptMessageHandler(this, "invokeAction");
}
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);
if (e.OldElement != null)
{
userController.RemoveAllUserScripts();
userController.RemoveScriptMessageHandler("invokeAction");
GenericWebView hybridWebView = e.OldElement as GenericWebView;
hybridWebView.Cleanup();
}
if (e.NewElement != null)
{
//{((GenericWebView)Element).Uri}
string filename = Path.Combine(NSBundle.MainBundle.BundlePath, $"/test.html");
LoadRequest(new NSUrlRequest(new NSUrl(filename, false)));
}
}
public void DidReceiveScriptMessage(WKUserContentController userContentController, WKScriptMessage message)
{
((GenericWebView)Element).InvokeAction(message.Body.ToString());
}
}
How to fix this issue ?
Firstly, please check the two permissions camera and photo permission in your
info.plist
:Privacy - Camera Usage Description
,Privacy - Photo Library Usage Description
.And then,you could manage to replace
WkWebViewRenderer
byViewRenderer
and setAllowsInlineMediaPlayback
.