【发布时间】:2019-11-26 11:00:14
【问题描述】:
我想获取 url 的 body 标记中的所有文本,但它不起作用。我搜索了很多,但我找不到任何东西。我还添加了android.permission.INTERNET。
那么问题是什么?
这是我的代码:
public class Activity_Main extends Activity {
@SuppressLint("JavascriptInterface")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final WebView webView = (WebView) findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
final TextView contentView = (TextView) findViewById(R.id.contentView);
class MyJavaScriptInterface
{
private TextView contentView;
public MyJavaScriptInterface(TextView aContentView)
{
contentView = aContentView;
}
@SuppressWarnings("unused")
public void processContent(String aContent)
{
final String content = aContent;
contentView.setText(content);
}
}
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new MyJavaScriptInterface(contentView), "INTERFACE");
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url)
{
webView.loadUrl("javascript:window.INTERFACE.processContent(document.getElementsByTagName('body')[0].innerText);");
}
});
webView.loadUrl("https://stackoverflow.com");
}
}
【问题讨论】:
-
processContent 应该怎么做?该功能可能有问题。
-
另加
super.onPageFinished(view, url); -
添加了 super.onPageFinished(view, url);但不起作用。
-
processContent是您的 html 页面或 Android 代码中的函数吗? -
在 android 代码中。我在 html 中什么都没有。
标签: javascript android webview