我没有将我的网站作为Android应用程序实现,而是使用我的网站通过webview在应用程序中显示它。我有搜索和搜索,发现类似的问题,但没有给我一个有效的解决方案...我想在使用用户按提交的网页时从webview获取发布数据。我使用swift在iOS中使用此解决方案:Grabbing POST data from UIWebView
到目前为止我尝试了什么:但是这会返回原始html。
wv.setWebViewClient(new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
Log.d(LOGTAG, url);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(flag)
{
try {
URL aURL = new URL(url);
HttpURLConnection conn = (HttpURLConnection) aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
BufferedReader streamReader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
StringBuilder response = new StringBuilder();
String inputLine;
while ((inputLine = streamReader.readLine()) != null) {
response.append(inputLine);
}
is.close();
String s = response.toString();
Log.d(LOGTAG, "response" + s);
view.loadUrl(url);
return true;
} catch (MalformedURLException e) {
e.printStackTrace();
return false;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
return false;
}
@Override
public void onPageFinished(WebView view, String url) {
if(url.contains("form.html"))
{
flag = true;
}
}
});
wv.loadUrl(mainUrl);
答案 0 :(得分:0)
你的反应是正确的。下面的代码将点击网址,并且与加载网页一样好。所以你输入流中的html数据。
HttpURLConnection conn = (HttpURLConnection) aURL.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
解决您的问题(Javascript桥)。 Android支持Javascript Bridge,您可以编写可以捕获数据的javascripts。
<强> UPADTE 强>
目前基于您的问题2解决方案可以建议我知道。