我有一个 Mozilla Firefox 的 Javascript 代码,当不同网站有特殊条件时,它会在不同网站中插入链接。 我正在考虑开发一个应用程序来在我的 Android 手机上实现同样的功能。 我已经做了一个加载 URL 的应用程序,我可以在 webView 中看到这个网站。 现在,我想插入我的 JavaScript 代码,目的是做同样的事情,但我不知道如何去做。
public void onCreate(Bundle InstanceState)
{
super.onCreate(InstanceState);
setContentView(R.layout.main);
webBrowser = (WebView) findViewById(R.id.webkit);
webBrowser.getSettings().setJavaScriptEnabled(true);
webBrowser.loadUrl("http://www.onekin.org");
}
我已经看到我应该使用这个功能,但一直无法让它工作
addJavascriptInterface(Object 对象,字符串名称)
有人知道我该怎么做吗? 谢谢
最佳答案
您可以尝试使用自己的WebViewClient:
定义您的链接
private String link = "http://yourlink.html";
将您的代码调整为:
webBrowser.getSettings().setJavaScriptEnabled(true);
webBrowser.setWebViewClient(new TestWebViewClient());
webBrowser.loadUrl("http://www.onekin.org");
// Interface to inject your javascript
webBrowser.addJavascriptInterface(new JavaScriptInterface(), "MYJSINTERFACE");
界面看起来像:
class JavaScriptInterface {
public void inject(String html) {
// Here you will get the Javascript executed
}
}
客户端注入(inject) JS 的位置:
private class TestWebViewClient extends WebViewClient {
@Override
public void onPageFinished(WebView view, String url) {
String javascript = "javascript:window.MYJSINTERFACE.inject(document.getElementById('yourlink').href = "+link+");";
// Inject Javascript in the URL already loaded
webBrowser.loadUrl(javascript);
}
}
关于javascript - 如何在 Android 中编写 JavaScript 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17316945/