2 u014067086 u014067086 于 2016.04.19 18:23 提问

关于android webview无法加载某些网页的问题

网址是去哪儿的:http://touch.qunar.com/h5/train/trainList?startStation=%E6%B7%B1%E5%9C%B3&endStation=%E5%B9%BF%E5%B7%9E&searchType=stasta&sort=3
用webview直接loadUrl()会一直停在"正在跳转"界面,如图:
图片说明
webSettings.setJavaScriptEnabled(true);
设置允许执行js后则出现如下界面:
图片说明
百度了一下qunaraphone,了解到:
5、Schema
schema是native同学提供的全局调用方式,业务可以通过schema来呼起另一个业务。
前端可以直接用location.href= 的形式,访问这个schema,并调起相应功能。

这里要注意的是,暂时有三种schema头,qunariphone://
(去哪儿IOS客户端)、qunariphonepro:// (去哪儿IOS pro客户端)、qunaraphone://
(去哪儿安卓客户端)。前端需要通过userAgent,判断是哪个客户端,来调用不同头的schema。(userAgent中有相应的keyword。)

==
不知道这跟webview有什么关系,要怎么弄才能正常访问呢?还有不允许执行js时访问新浪网会提示需要开启js,开启后就能正常访问,但淘宝网是一直都访问不了,一点反应都没有...

4个回答

rvncds
rvncds   2016.04.20 13:28
已采纳

应该是服务器端写的不健全,看现象是服务器在执行trainList查询的时候,读取了客户端传过来的wakeup属性值,没有wakeup属性值服务器解析出现问题

此网页不可以 http://touch.qunar.com/h5/train/trainList
此网页可以 http://touch.qunar.com/h5/train/trainList?wakeup=1

u014067086
u014067086 恩,只能是在后面先加上"&wakeup=1"来解决了,谢谢啊
一年多之前 回复
rvncds
rvncds   2016.04.19 19:20

下面代码是可以正常显示的
WebView webView = (WebView)findViewById(R.id.webview);
//webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
//webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
//返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
view.loadUrl(url);
return true;
}
});
/* webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onProgressChanged(WebView view, int newProgress) {
// TODO Auto-generated method stub
if (newProgress == 100) {
Log.i("","加载完成");

            } else {
                // 加载中
                Log.i("","加载中...");
            }

        }
    });
    */
    //webView.loadUrl("http://baidu.com");
    webView.loadUrl("http://touch.qunar.com/h5/train/trainList?startStation=%E6%B7%B1%E5%9C%B3&endStation=%E5%B9%BF%E5%B7%9E&searchType=stasta&sort=3");
rvncds
rvncds 回复魈痕: 牛逼大神还看没营养的东西,不怕降低了你的品位?
8 个月之前 回复
qq1562609742
qq1562609742 你跟别人都不在一个频道上,还扯这么多
9 个月之前 回复
rvncds
rvncds 回复黄陵沙糖桔: 将地址写成“http://touch.qunar.com/h5/train/就应该能显示
一年多之前 回复
rvncds
rvncds 你看一下运行log,是不是"The key "shrink-to-fit" is not recognized and ignored
一年多之前 回复
u014067086
u014067086 感谢您的回复,这么说来也有可能是网络的问题了,我按照您的代码执行还是一直停在"正在跳转,请稍后..."页面
一年多之前 回复
CSDNXIAON
CSDNXIAON   2016.04.19 21:01

Android WebView 加载网页
Android之WebView加载网页
android使用webview加载网页
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

u014067086
u014067086   2016.04.20 11:27

@rvncds
log里没有看到"The key "shrink-to-fit" is not recognized and ignored.

通过shouldOverrideUrlLoading()发现是停在了url01 = "http://touch.qunar.com/h5/client?bd_source=qunar&sScheme=1&scheme=9ba0d4a5501039c836e0f6ebd7591c3cdf530395e34774be803ca3aa5d8d7dd88a02757808b6c1c6cf3f26d9ce1cd8ec05b834242f9351b5674022a6b1ddd80321513c4706534d3ecf860b477cba454f9bc8b8a24199014dcf0e0c55b043c59da223a9b7937d7a90faa3980a0f1a9beb&&touchUrl=07737b01eb30307696066ff6b81aca935b2362db0ffb49a258bde88c1a8127593d1cbefcc0030f26e07ca2f9779c8032d6c9007716f223f86bcf7827adcbf75338c54427e4af0fefee17b587016d37688f362ad03e4878224bbaa6d677412a4c85e51c8e3ef5e8fce831c87cb21211fbd87b34d525e49a52e8312ac777636b0f"; 

用浏览器打开url01会跳转到url02 = "http://touch.qunar.com/h5/train/trainList?startStation=%E6%B7%B1%E5%9C%B3&endStation=%E5%B9%BF%E5%B7%9E&searchType=stasta&date=&sort=3&wakeup=1"; 这个比之前的网址多了"&date=&wakeup=1",用webview能正常访问.

应该是url01加载的问题...

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!