namespace JiDangJia.Views;
public sealed class CommunityWebView : WebView
{
public const string Origin="https://appassets.androidplatform.net/";
public event Action<string>? MessageReceived;
public string Html{set=>Source=new HtmlWebViewSource{Html=value,BaseUrl=Origin};}
public bool Ready{get;private set;}
internal void Receive(string message)
{
if(message.Length>200000)return;Dispatcher.Dispatch(()=>{if(Handler is null)return;if(message=="ready"){Ready=true;}MessageReceived?.Invoke(message);});
}
public Task Run(string script)=>EvaluateJavaScriptAsync(script);
public void Stop(){Ready=false;if(Handler is not null)_=Run("window.stopMedia?.();");}
public CommunityWebView(){Navigating+=(_,e)=>{if(!e.Url.StartsWith(Origin,StringComparison.Ordinal)&&e.Url!="about:blank")e.Cancel=true;};}
}
namespace JiDangJia.Views;
public sealed class CommunityWebView : WebView
{
public const string Origin="https://appassets.androidplatform.net/";
public event Action<string>? MessageReceived;
public string Html{set=>Source=new HtmlWebViewSource{Html=value,BaseUrl=Origin};}
public bool Ready{get;private set;}
internal void Receive(string message)
{
if(message.Length>200000)return;Dispatcher.Dispatch(()=>{if(Handler is null)return;if(message=="ready"){Ready=true;}MessageReceived?.Invoke(message);});
}
public Task Run(string script)=>EvaluateJavaScriptAsync(script);
public void Stop(){Ready=false;if(Handler is not null)_=Run("window.stopMedia?.();");}
public CommunityWebView(){Navigating+=(_,e)=>{if(!e.Url.StartsWith(Origin,StringComparison.Ordinal)&&e.Url!="about:blank")e.Cancel=true;};}
}