首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在webview中加载url

问无法在webview中加载url
EN

Stack Overflow用户
提问于 2015-02-21 11:21:03
回答 2查看 1K关注 0票数 1

我有一个应用程序,它有一个包含web视图的片段。当我尝试其他URL时,web视图运行正常,但是当我尝试使用"http://peekatu.com/scraper/onair.php“时,它不会加载到web视图中。我不知道为什么它不能加载。感谢您的帮助。谢谢。

代码语言:javascript
复制
@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

代码语言:javascript
复制
<?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;
}

?>
EN

回答 2

Stack Overflow用户

发布于 2015-02-21 12:02:32

在调用loadUrl之前,添加以下行:

代码语言:javascript
复制
web_v.setWebChromeClient(new WebChromeClient());

另外,我不明白为什么要定义一个覆盖shouldOverrideUrlLoading的WebViewClient,然后自己调用loadUrl --去掉它就行了。

票数 0
EN

Stack Overflow用户

发布于 2015-02-23 00:40:37

用手机浏览器测试网页无法加载,所以问题肯定不在你的android代码中,问题出在php代码上。

你能分享生成那个网页的代码吗?

此外,如果您试图在应用程序中显示信息,您可能需要考虑一种不同的方法,如果您想要在应用程序中显示数据列表,您可能希望使用listView并从JSON REST Api获取数据,而不是在php网站中显示该列表

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28641713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档