0
我基本上想要从已加载到应用程序的Webview
的网页中提取文本。从Webview中提取文本
就像一个试验,我用this post的方法构建了一个应用程序来计算卢比符号(₹)的出现次数。
见截图: App's Screenshot
但我不能使它发挥作用。 TextView
应显示网页上的'$'符号的数量,但它保持不变。
我在Android的一个小白和高度会appritiate任何帮助:)
这是我的代码: (MainActivity)
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.JavascriptInterface;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
static TextView count;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
count = (TextView) findViewById(R.id.textView);
/* An instance of this class will be registered as a JavaScript interface */
class MyJavaScriptInterface {
@JavascriptInterface
@SuppressWarnings("unused")
public void processHTML(String html) {
// process the html as needed by the app
int occ = 0;
for(int i = 0 ; i < html.length() ; i++)
if(html.charAt(i) == '₹')
occ++;
MainActivity.count.setText(occ);
}
}
final WebView browser = (WebView) findViewById(R.id.browser);
/* JavaScript must be enabled if you want it to work, obviously */
browser.getSettings().setJavaScriptEnabled(true);
/* Register a new JavaScript interface called HTMLOUT */
browser.addJavascriptInterface(new MyJavaScriptInterface(), "HTMLOUT");
/* WebViewClient must be set BEFORE calling loadUrl! */
browser.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
/* This call inject JavaScript into the page which just finished loading. */
browser.loadUrl("javascript:HTMLOUT.processHTML(document.documentElement.outerHTML);");
}
});
/* load a web page */
browser.loadUrl("https://www.google.co.in/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=buy+chocolate");
}
}
您好,感谢一吨。应用程序在进行这些更改后工作。 只有一个小问题,IDE说'occ'应该被声明为final,因为它是从内部类中访问的。 作为一个临时修复,我已经将'occ'的值存储为'final int occ2 = occ'',并将其用作'count.setText(String.valueOf(occ2));' –
对,我通过移动“int occ;”来解决问题到Activity类。 –
谢谢你的帮助:) –