在Android Xamarin CrossWalk WebView中调用Javascript中的C#函数,可以通过以下步骤实现:
dependencies {
implementation 'org.xwalk:xwalk_core_library:23.53.589.4'
}
using Org.Xwalk.Core;
// ...
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// ...
// 初始化CrossWalk WebView
XWalkPreferences.SetValue(XWalkPreferences.EnableJavascriptInterface, true);
XWalkPreferences.SetValue(XWalkPreferences.JavascriptCanOpenWindowsAutomatically, true);
var webView = new XWalkView(this, this);
SetContentView(webView);
// ...
}
[Export]
属性标记需要暴露给Javascript调用的函数。例如:using Android.App;
using Android.Widget;
using Java.Interop;
namespace YourNamespace
{
public class JavaScriptInterface : Java.Lang.Object
{
private readonly Activity _activity;
public JavaScriptInterface(Activity activity)
{
_activity = activity;
}
[Export("showToast")]
public void ShowToast(string message)
{
Toast.MakeText(_activity, message, ToastLength.Short).Show();
}
}
}
// ...
var webView = new XWalkView(this, this);
SetContentView(webView);
// 添加Javascript接口
var jsInterface = new JavaScriptInterface(this);
webView.AddJavascriptInterface(jsInterface, "jsInterface");
// ...
jsInterface
对象来调用。例如,在Javascript中可以使用以下代码调用C#的showToast
函数:jsInterface.showToast("Hello from Javascript!");
以上就是在Android Xamarin CrossWalk WebView中调用Javascript中的C#函数的步骤。通过这种方式,可以实现在WebView中的Javascript代码与C#代码的互相调用和交互。
领取专属 10元无门槛券
手把手带您无忧上云