Android 虽然webview url的Inputstream为空,但webview在其视图上显示了一些内容
我需要阅读html内容,而不是在webview上显示它,同时使用webview进行一系列交易,如使用webview进行在线支付。一旦到达最后一页,我将检查onPageFinished回调中的URL,并建立URLConnection以读取inputstream。但是这总是空的内容,最终的webview在屏幕上有一些内容Android 虽然webview url的Inputstream为空,但webview在其视图上显示了一些内容,android,android-webview,Android,Android Webview,我需要阅读html内容,而不是在webview上显示它,同时使用webview进行一系列交易,如使用webview进行在线支付。一旦到达最后一页,我将检查onPageFinished回调中的URL,并建立URLConnection以读取inputstream。但是这总是空的内容,最终的webview在屏幕上有一些内容 public class mWebClient extends WebViewClient { @Override public void onLoadResour
public class mWebClient extends WebViewClient {
@Override
public void onLoadResource(WebView view, String url) {
super.onLoadResource(view, url);
// Utils.displayLogs("<<<<<< mydebug >>>>>>>", "onLoadResource : "
// + url);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
Utils.displayLogs("<<<<<< mydebug >>>>>>>", "Url : " + url);
if (mProgressDialog != null && !mProgressDialog.isShowing())
mProgressDialog.show();
}
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
// Utils.displayLogs("<<<<<< mydebug >>>>>>>", "Url : " + url);
if (url.endsWith("finalSuccessPage.aspx")
|| url.endsWith("finalErrorPage.aspx")) {
try {
List<String> vals = checkSuccessContent(url);
if (vals != null && vals.size() > 0) {
Log.d("<<<<<<mydebug >>>>>>", "vals[0] : "
+ vals.get(0));
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
super.onPageFinished(view, url);
if (mProgressDialog != null && mProgressDialog.isShowing())
mProgressDialog.dismiss();
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
private List<String> checkSuccessContent(String url) throws IOException {
List<String> vals = new ArrayList<String>();
if (url.endsWith("finalSuccessPage.aspx")
|| url.endsWith("finalErrorPage.aspx")) {
URL tUrl = new URL(url);
URLConnection con = tUrl.openConnection();
Reader r = new InputStreamReader(con.getInputStream());
StringBuilder buf = new StringBuilder();
while (true) {
int ch = r.read();
if (ch < 0)
break;
buf.append((char) ch);
}
String str = buf.toString();
if (str.contains(Constants.STR_SUCCESS)) {
String[] lVals = str.split("~");
if (lVals != null) {
for (int i = 0; i < lVals.length; i++) {
vals.add(lVals[i]);
}
}
}
}
return vals;
}
}
提前感谢,,
JRH不要从shouldOverrideUrlLoading调用loadUrl。对于具有非https方案的子帧调用shouldOverrideUrlLoading。如果您转到一个类似于您的代码的页面,则会调用view.loadUrl'tel:1234',并且您会显示一个错误页面,因为webview不知道如何加载tel:URL。服务器是否希望一些cookie就位?看见