Android Xamarin中的WebView.EvaluateJavaScript问题

妮莎·保罗(Nitha Paul)

我正在使用以下代码将Java脚本注入到我的Android Web视图中

网页浏览

webView = FindViewById<WebView> (Resource.Id.learningWebView);
if (null != webView) {
    webView.Settings.JavaScriptEnabled = true;
    webView.Settings.SetSupportZoom (true);
    webView.SetWebViewClient (new CustomWebViewClient ());

 }

WebView客户端实施

public class CustomWebViewClient : WebViewClient
{
    public override bool ShouldOverrideUrlLoading (WebView view, string url)
    {
        view.LoadUrl (url);
        return true;
    }

    public override void OnPageStarted (WebView view, string url, Android.Graphics.Bitmap favicon)
    {

    }

    public override void OnPageFinished (WebView view, string url)
    {
        base.OnPageFinished (view, url);
        HideLearningDivs (view);
    }


    void HideLearningDivs (WebView view)
    {
        try {

            view.EvaluateJavascript ("document.getElementById(\"suiteBar\").parentNode.style.display='none'", new JavaScriptResult ());
        } catch (Exception ex) {
            Console.WriteLine (ex.Message);
        }

    }

IValueCallback实现

public class JavaScriptResult :  IValueCallback
{
    public IntPtr Handle {
        get;
        set;
    }

    public void Dispose ()
    {

    }



    public void OnReceiveValue (Java.Lang.Object result)
    {

    }
}

但是在执行应用程序期间,出现以下错误。

java.lang.NoSuchMethodError:类Landroid / webkit / WebView中没有名称为'evaluateJavascript'signature ='(Ljava / lang / String; Landroid / webkit / ValueCallback;)V'的方法;

谁能帮我找到实施中的问题。

hvaughan3

我将链接到下面找到答案的地方,但是基本上您需要检查Android KitKat(4.4),因为该功能直到那时才引入。如果设备的运行低于4.4,则可能需要做一些不同的事情以恢复值(如果您确实需要对它进行一些处理)。例如使用Hybrid WebView某种(可能是Xamarin Forms Labs的版本)和/或使用AddJavaScriptInterface()

这是代码:

if(Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Kitkat) {
    webView.EvaluateJavascript("javascript:GoBack();", null);
} else {
    webView.LoadUrl("javascript:GoBack();");
}

https://forums.xamarin.com/discussion/24894/webview-evaluatejavascript-issues

*编辑:自编写此书以来,我发现了一篇出色的文章Adam Pedley(我最近显然与他有很多联系),内容涉及为Xamarin Forms进行此操作,还提到了将Android 4.2更改为JS引擎。运行的JavaScript可能工作第一次,但它也设置文档对象的脚本结果,所以你可能需要将结果赋予的document.getElementById(),以一个变量来解决此问题:var x = document.getElementById()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

EvaluateJavascript Using Android WebView with API level 18

来自分类Dev

Android WebView(Xamarin)中的VueJS

来自分类Dev

Android Webview EvaluateJavascript 有时不返回响应

来自分类Dev

Android中的WebView文字缩放问题

来自分类Dev

Android KitKat中的WebView渲染问题

来自分类Dev

Android App的WebView中的Vimeo Player问题

来自分类Dev

Android App的WebView中的Vimeo Player问题

来自分类Dev

如何在Xamarin.Android/Monodroid中使用Android KitKat EvaluateJavascript并检索结果?

来自分类Dev

如何在Xamarin.Android/Monodroid中使用Android KitKat EvaluateJavascript并检索结果?

来自分类Dev

Android上的WebView问题

来自分类Dev

Android上的WebView问题

来自分类Dev

Android Studio:WebView问题

来自分类Dev

在Xamarin android中推送通知问题

来自分类Dev

Xamarin 本机 Webview Android

来自分类Dev

AngularJS在Xamarin Android Webview中不起作用

来自分类Dev

用户从Xamarin Android中的Webview中长按保存图像

来自分类Dev

Xamarin Android-WebView中的Gif显示为空白

来自分类Dev

新版本的android中的webview显示问题

来自分类Dev

Xamarin Android布局问题

来自分类Dev

在 Visual Studio Xamarin 中的 Android ListView 中呈现问题

来自分类Dev

android kitkat webview缓存问题

来自分类Dev

Xamarin Forms(Android)中的垂直和水平滚动问题

来自分类Dev

PDF文件下载xamarin Forms Android中拒绝访问的问题

来自分类Dev

Xamarin Forms(Android)中的垂直和水平滚动问题

来自分类Dev

在 Xamarin 表单中显示来自 .aar 文件的视图的问题 android

来自分类Dev

Xamarin Android下的Filewriter问题

来自分类Dev

XAMARIN ANDROID:抗锯齿问题

来自分类Dev

Xamarin Android - 关于发布问题

来自分类Dev

Android中的Webview活动

Related 相关文章

热门标签

归档