Injecting JQuery into Android Webview

Injecting JQuery into Android Webview

本文关键字:Webview Android into JQuery Injecting      更新时间:2023-09-26

我正在做一个项目,翻译网页并将其显示在android应用程序中。我已经通过使用以下代码将Javascript注入webview android成功地做到了这一点:

@Override
public void onPageFinished(WebView view, String url)
{
    String jap = "お問い合わせ";
    String eng = "Contact Us";
    mWebView.loadUrl("javascript:(function(){" +
            "var jpf = '"+jap+"';" +
            "var jp = new RegExp(jpf,'g');" +
            "var en = '"+eng+"';" +
            "document.body.innerHTML = " +
            "document.body.innerHTML.replace(jp,en);" +
            "})()");
}

然而,这是一种非常无效的方法,因为它会搜索每个术语并替换它。因此,我尝试用jQuery的字典做一些类似的事情:

@Override
public void onPageFinished(WebView view, String url)
{    
    mWebView.loadUrl("javascript (function(){" +                    
    "var myDictionary = {" +
    "jp : {" +
    "'お問い合わせ' : 'Contact Us'" +
    "}" +
    "}" +
    "$.tr.dictionary(myDictionary);" +
    "$.tr.language('jp');" +
    "var tr = $.tr.translator();" +
    "alert(tr('お問い合わせ'))" +
          "})()");
}

这似乎不起作用。请帮忙。

注:我打算用一个以上的单词来填字典。对于第一段代码,我已经创建了一个循环来更改变量japeng,但效率很低。为了增加简单性,我选择不包含该代码。感谢

直接来源:https://developer.chrome.com/multidevice/webview/gettingstarted#enable_javascript

启用JavaScript

默认情况下,WebViews不允许使用JavaScript。要在web视图中运行web应用程序,您需要通过在onCreate方法中添加以下行来显式启用JavaScript:

// Enable Javascript
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);