我正在开发一个翻译网页并在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('お問い合わせ'))" +
"})()");
}
这似乎不起作用。请帮忙。
注意:我打算用更多单词填写字典。对于第一个代码,我创建了一个更改变量jap
和eng
的循环,但效率很低。我选择不包含该代码以增加简单性。感谢
答案 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);