我有一个应用程序,它有一个包含web视图的片段。当我尝试其他URL时,web视图运行正常,但是当我尝试使用"http://peekatu.com/scraper/onair.php“时,它不会加载到web视图中。我不知道为什么它不能加载。感谢您的帮助。谢谢。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// TODO Auto-generated method stub
View v= inflater.inflate(R.layout.fragment_listen_live, container, false);
btn = (Button) v.findViewById(R.id.button1);
btn.setOnClickListener(pausePlay);
web_v= (WebView) v.findViewById(R.id.webView);
WebSettings web_sett=web_v.getSettings();
web_sett.setJavaScriptEnabled(true);
//web_v.setWebViewClient(new MyWebClient());
web_v.setWebChromeClient(new WebChromeClient());
web_v.loadUrl("http://peekatu.com/scraper/onair.php");
MainActivity m = (MainActivity) getActivity();
m.changeMenu("homePage");
this.getSherlockActivity().getSupportActionBar().setTitle("Power 92 Chicago");
this.getSherlockActivity().getSupportActionBar()
.setSubtitle("#1 in the Streets!");
return v;
}
private class MyWebClient extends WebViewClient {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
web_v.loadUrl(url);
return true;
}
}onair.php
<?php
set_time_limit(0);
ignore_user_abort(FALSE);
error_reporting(E_ERROR);
ini_set('display_errors', 'on');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.power92chicago.com/');
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.99 Safari/537.36');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
if (isset($_SERVER['HTTP_USER_AGENT'])) {
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
}
$dom = new DOMDocument();
$dom->loadHTML(curl_exec($ch));
$xpath = new DOMXPath($dom);
$node = $xpath->query("//td[contains(concat(' ', normalize-space(@class), ' '), ' TimeFeatureHorizontalTd ')]")->item(0);
echo get_inner_html($node);
function get_inner_html($node) {
$innerHTML= '';
$children = $node->childNodes;
foreach ($children as $child) {
$innerHTML .= $child->ownerDocument->saveXML( $child );
}
return $innerHTML;
}
?>发布于 2015-02-21 12:02:32
在调用loadUrl之前,添加以下行:
web_v.setWebChromeClient(new WebChromeClient());另外,我不明白为什么要定义一个覆盖shouldOverrideUrlLoading的WebViewClient,然后自己调用loadUrl --去掉它就行了。
发布于 2015-02-23 00:40:37
用手机浏览器测试网页无法加载,所以问题肯定不在你的android代码中,问题出在php代码上。
你能分享生成那个网页的代码吗?
此外,如果您试图在应用程序中显示信息,您可能需要考虑一种不同的方法,如果您想要在应用程序中显示数据列表,您可能希望使用listView并从JSON REST Api获取数据,而不是在php网站中显示该列表
https://stackoverflow.com/questions/28641713
复制相似问题