我有一个应用程序,需要从我不拥有的外部URL获取字符串。例如,我需要应用程序在"点A"之间找到表达式。到B" B"在外部html文件的文本中,获取2点之间的全文。
我认为可以通过webview搜索文本来完成,但我在另一篇文章中读到,Android不允许我的应用程序复制webview中找到的文本,然后粘贴到textview中。 / p>
那么,这样做不可能吗?我在考虑什么是更好的方法呢?你能给我一些建议吗?也许在我的服务器中使用html / asp文件进行搜索,然后我会通过我的网站搜索"工具。
我不知道这是不是最好的方式,也无法想象我怎么能这样做。
感谢您提出任何建议。
答案 0 :(得分:0)
我想您可以从WebView访问该URL。因此,您可以自己提出获取HTML的请求并进行搜索。
类似的东西:
new Thread(new Runnable(){
@Override
public void run() {
URL url;
HttpURLConnection connection = null;
try {
url = new URL("http://www.google.com");
connection = (HttpURLConnection)url.openConnection();
InputStream is = connection.getInputStream();
InputStreamReader isw = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isw);
StringBuilder builder = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
builder.append(line).append('\n');
}
String html = builder.toString();
Log.d("HTML", html);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (connection != null) {
connection.disconnect();
}
}
}
}).start();
答案 1 :(得分:0)
URL externalURL = new URL("http://stackoverflow.com/questions/40347333/android-
copy-string-from-external-url-is-it-possible");
BufferedReader in = new BufferedReader(new InputStreamReader(externalURL.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
response += inputLine + '\n';
}
in.close();
return response
在其他一些线程上运行这段代码而不是main(AsyncTask
将完成工作),做解析的事情,将response
应用到TextView
并且你有你的外部网址阅读器。