【问题标题】:open a url without help of android browser in android?在android中不借助android浏览器打开一个url?
【发布时间】:2012-01-22 13:52:59
【问题描述】:

我正在开发一个 android 应用程序,我想在其中从 url 获取新闻而不打开默认的 android 浏览器。这意味着我只想获取文本内容,只获取新闻而不是浏览器中的完整 html 页面。我该怎么做?

【问题讨论】:

    标签: android browser


    【解决方案1】:

    如果我理解正确 - 您需要在线提出请求并收到 html 代码作为回报。 这样做如下:

    DefaultHttpClient client = new DefaultHttpClient();
    HttpGet request = new HttpGet();
    request.setURI(new URI(http://example.com/news));
    
    HttpResponse response = client.execute(request);
    BufferedReader in = new BufferedReader(new InputStreamReader(
    response.getEntity().getContent()));
    StringBuffer sb = new StringBuffer("");
    String line;
    while ((line = in.readLine()) != null) {
        sb.append(line);
    }
    in.close();
    
    String html = sb.toString();
    

    【讨论】:

      【解决方案2】:

      您的意思是要将网页的实际内容解析到您的应用程序吗?当我在我的一个应用程序中这样做时,我用一个简单的http://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html 解析了整个网页,然后我取出了那些相关的标签。然而,这需要在 asynctask (http://developer.android.com/reference/android/os/AsyncTask.html) 下运行一些相当繁重的动态编程。

      URL url = new URL(XML_INIT_ADRESS);
      XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
      factory.setNamespaceAware(false);
      XmlPullParser xpp = factory.newPullParser();
      xpp.setInput(url.openStream(), null);
      

      我个人对 Android 还不是很有经验,我还在学习,但您应该能够通过这种方式解析网页上的新闻。

      编辑:这种方法几乎需要对某些“新闻标签”进行某种识别,如果它们“无法定义”,Antons 的回答会更好。

      【讨论】:

        【解决方案3】:
            Hi Yes You can implement this.Use This code which i mention below.
        
        
        
         - WebView webView = (WebView) findViewById(R.id.webview_btn);
           WebSettings settings = webView.getSettings();
           mProgress = ProgressDialog.show(this, "Loading", "Please wait for a moment...");
        
                       settings.setJavaScriptEnabled(true);
                       settings.setSupportZoom(true);
                       settings.setBuiltInZoomControls(true);
        
                       WebViewClient client = new WebViewClient() {
                        @Override
                        public boolean shouldOverrideUrlLoading(WebView view, String url) {
                            // TODO Auto-generated method stub
                            view.loadUrl(url);
                            mProgress.show();
        
                            return true;
                        }
                           @Override
                           public void onPageFinished(WebView view, String url) {
        
                            if(mProgress.isShowing())
                            {
                                mProgress.dismiss();
                            }
                           }
                       };
                       webView.loadUrl(enter your url);
                       webView.setWebViewClient(client);
        

        【讨论】:

          【解决方案4】:
          HttpClient httpClient = new DefaultHttpClient();
          HttpContext localContext = new BasicHttpContext();
          HttpGet httpGet = new HttpGet("http://www.example.com/" + URL);
          response = httpClient.execute(httpGet, localContext);
          

          【讨论】:

            猜你喜欢
            • 2011-09-10
            • 2012-07-13
            • 1970-01-01
            • 1970-01-01
            • 2013-04-14
            • 2015-05-30
            • 2015-06-29
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多