最简单的:通过Intent调用系统浏览器
import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { private String url="https://www.baidu.com/"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Uri uri=Uri.parse(url); Intent intent=new Intent(Intent.ACTION_VIEW,uri); startActivity(intent); } }使用WebView加载页面
要在WebView加载页面,使用loadUrl()
web资源:webView.loadUrl(“网址”)
本地资源:webView.`loadUrl(“本地网页存放位置”) 本地文件存放在:assets文件中
使页面获取焦点:webView.requestFocus()
获取网络访问权限
要让WebView能够有效运行,需要在manifest中获取网络访问权限 user-pemission android:name=”android.permission.INTERNET”
exercise layout下新建一个webview Activity下
import android.app.ProgressDialog; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.KeyEvent; import android.webkit.WebChromeClient; import android.webkit.WebSettings; import android.webkit.WebView; import android.webkit.WebViewClient; //注意url要是http的形式,不要https public class MainActivity extends AppCompatActivity { private String url = "https://www.baidu.com/"; private String url2 = "http://www.tretars.com/"; private WebView webView; private ProgressDialog progressDialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /* Uri uri=Uri.parse(url); Intent intent=new Intent(Intent.ACTION_VIEW,uri); startActivity(intent); */ init(); } private void init() { webView = (WebView) findViewById(R.id.webView); //加载本地资源 //webView.loadUrl("android_assets.html"); //加载网页资源 webView.loadUrl(url2); /*webView.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { //返回值为true的时候控制网页在WebView中打开,如果为false则调用系统浏览器或第三方浏览器 view.loadUrl(url2); return true; //return super.shouldOverrideUrlLoading(view, request); } });*/ //覆盖WebView默认通过第三方或者是系统浏览器打开网页的行为,使得网页可以在WebView中打开,WebViewClient帮助WebView去处理一些页面控制和请求通知 webView.setWebViewClient(new WebViewClient()); //启用支持JavaScript WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); //进度条启动 webView.setWebChromeClient(new WebChromeClient() { @Override public void onProgressChanged(WebView view, int newProgress) { //newProgress在1-100之间 if (newProgress == 100) { //网页加载完毕,关闭 closeDialog(); } else { //网页正在加载,打开ProgressDialog openDialog(newProgress); } } private void openDialog(int newProgress) { if(progressDialog==null){ progressDialog = new ProgressDialog(MainActivity.this); progressDialog.setTitle("正在加载"); progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); progressDialog.setProgress(newProgress); progressDialog.show(); }else{ progressDialog.setProgress(newProgress); } } private void closeDialog() { if(progressDialog!=null&&progressDialog.isShowing()){ progressDialog.dismiss(); progressDialog=null; } } }); //WebView加载页面优先使用缓存 webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); } //改写物理按键-返回的逻辑 @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if (webView.canGoBack()) { webView.goBack();//返回上一页面 return true; } else { System.exit(0);//退出程序 } } return super.onKeyDown(keyCode, event); } }