android 用什么加载网页

 我来答
微博honey_11
2016-12-05 · TA获得超过191个赞
知道小有建树答主
回答量:304
采纳率:100%
帮助的人:328万
展开全部

使用webview.

android学习手册中有webview加载本例网页,加载web网页的详细例子。可以看源码。如果相信我的话可以下载看看。android学习手册包含9个章节,108个例子,源码文档随便看,例子都是可交互,可运行, 源码采用android studio目录结构,高亮显示代码,文档都采用文档结构图显示,可以快速定位。360手机助手中下载,图标上有贝壳

WebView可以使得网页轻松的内嵌到app里,还可以直接跟js相互调用。

webview有两个方法:setWebChromeClient 和 setWebClient

setWebClient:主要处理解析,渲染网页等浏览器做的事情

setWebChromeClient:辅助WebView处理Javascript的对话框,网站图标,网站title,加载进度等 

WebViewClient就是帮助WebView处理各种通知、请求事件的。

 

在AndroidManifest.xml设置访问网络权限:

<uses-permission android:name="android.permission.INTERNET"/>

控件:

<WebView
   android:layout_width="match_parent"
   android:layout_height="match_parent"
   android:id="@+id/webView"
   />

 

用途一:加载本地/Web资源

example.html 存放在assets文件夹内

调用WebView的loadUrl()方法,

加载本地资源

webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("file:///android_asset/example.html");

加载web资源:

webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("http://baidu.com");

 

用途二:在程序内打开网页

 

创建一个自己的WebViewClient,通过setWebViewClient关联

package com.example.testopen;

import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends Activity {
private WebView webView;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.test);            
       init();

   }
   

   private void init(){
       webView = (WebView) findViewById(R.id.webView);
       //WebView加载web资源
      webView.loadUrl("http://baidu.com");
       //覆盖WebView默认使用第三方或系统默认浏览器打开网页的行为,使网页用WebView打开
      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;
       }
      });
   }
   
}

 

用途三:

如果访问的页面中有Javascript,则webview必须设置支持Javascript

//启用支持javascript
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);

 

用途四:

如果希望浏览的网页后退而不是退出浏览器,需要WebView覆盖URL加载,让它自动生成历史访问记录,那样就可以通过前进或后退访问已访问过的站点。

//改写物理按键——返回的逻辑
   @Override
   public boolean onKeyDown(int keyCode, KeyEvent event) {
       // TODO Auto-generated method stub
       if(keyCode==KeyEvent.KEYCODE_BACK)
       {
           if(webView.canGoBack())
           {
               webView.goBack();//返回上一页面
               return true;
           }
           else
           {
               System.exit(0);//退出程序
           }
       }
       return super.onKeyDown(keyCode, event);
   }

用途五:判断页面加载过程

   webView.setWebChromeClient(new WebChromeClient() {
           @Override
           public void onProgressChanged(WebView view, int newProgress) {
               // TODO Auto-generated method stub
               if (newProgress == 100) {
                   // 网页加载完成

               } else {
                   // 加载中

               }

           }
       });

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式