将JQuery注入Android Webview

时间:2015-03-21 00:01:40

标签: javascript android jquery webview language-translation

我正在开发一个翻译网页并在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的循环,但效率很低。我选择不包含该代码以增加简单性。感谢

1 个答案:

答案 0 :(得分:-1)

直接来源: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);