提交 8072eccb 编写于 作者: M Martin Zikmund

feat: Support for WebMessageReceived on Android

上级 685879ab
......@@ -129,6 +129,8 @@ public partial class CoreWebView2
internal void RaiseHistoryChanged() => HistoryChanged?.Invoke(this, null);
internal void RaiseWebMessageReceived(string message) => WebMessageReceived?.Invoke(this, new(message));
internal void SetHistoryProperties(bool canGoBack, bool canGoForward)
{
CanGoBack = canGoBack;
......
......@@ -5,7 +5,7 @@ namespace Microsoft.Web.WebView2.Core;
/// </summary>
public partial class CoreWebView2WebMessageReceivedEventArgs
{
private CoreWebView2WebMessageReceivedEventArgs(string webMessageAsJson)
internal CoreWebView2WebMessageReceivedEventArgs(string webMessageAsJson)
{
WebMessageAsJson = webMessageAsJson;
}
......
......@@ -40,6 +40,7 @@ internal class NativeWebViewWrapper : INativeWebView
_webView.Settings.SetSupportZoom(true);
_webView.Settings.LoadWithOverviewMode = true;
_webView.Settings.UseWideViewPort = true;
_webView.AddJavascriptInterface(new UnoWebMessageHandler(this), "unoWebMessageHandler");
//Allow ThirdPartyCookies by default only on Android 5.0 and UP
if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Lollipop)
......@@ -199,5 +200,13 @@ internal class NativeWebViewWrapper : INativeWebView
_webView.HorizontalScrollBarEnabled = scrollingEnabled;
_webView.VerticalScrollBarEnabled = scrollingEnabled;
}
internal void OnWebMessageReceived(string message)
{
if (_coreWebView.Settings.IsWebMessageEnabled)
{
_coreWebView.RaiseWebMessageReceived(message);
}
}
}
using Android.Webkit;
using Java.Interop;
namespace Uno.UI.Xaml.Controls;
internal class UnoWebMessageHandler : Java.Lang.Object
{
private readonly NativeWebViewWrapper _nativeWebView;
public UnoWebMessageHandler(NativeWebViewWrapper wrapper)
{
_nativeWebView = wrapper;
}
[Export]
[JavascriptInterface]
public void postMessage(string message) => _nativeWebView?.OnWebMessageReceived(message);
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册