【简易的APP开发】开发简易安卓浏览器(一)

【简易的APP开发】开发简易安卓浏览器(一)_第1张图片

开发一个简易的手机浏览器并不难,当然做一个功能强大的浏览器就相当不容易了,这里本人做的是简易版,供大家学习交流


1.首先第一步,配置权限:关于网络访问的权限。

 

<!-- 访问网络连接,可能产生GPRS流量 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 获取当前WiFi接入的状态以及WLAN热点的信息 -->
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
    <!-- 获取网络信息状态,如当前的网络连接是否有效 -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />



2.紧接着开始编写怎么访问网络,以及登入网址的方式:

   安卓有个常用的WebView,一般情况下,我们以他为浏览网页的载体,

 编写格式为:webview.loadUrl("www.baidu.com");

   为支持Javascript脚本网页,需要设置webview.getSettings().setJavaScriptEnabled(true);


3.以上两步虽然可以浏览网页但是,会遇到几个问题:

    (1).新建网页的方式:

            是新开一个连接,还是刷新当前再加载。

      (2)网页回退:

           一种是回退操作,一种是退出当前网页,返回至上一网页。

     以上两个问题也需要解决

 为此,我们需要再一步完善:

// 如果页面中链接,如果希望点击链接继续在当前browser中响应,
// 而不是新开Android的系统browser中响应该链接,必须覆盖 webview的WebViewClient对象。
webview.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
((EditText)findViewById(R.id.title)).setText(url);
return true;
}
});

/**
* 如果不做任何处理,浏览网页,点击系统“Back”键,整个Browser会调用finish()而结束自身,如果希望浏览的网
* 页回退而不是推出浏览器,需要在当前Activity中处理并消费掉该Back事件。
*/
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
webview.goBack(); // goBack()表示返回WebView的上一页面
return true;
} else if ((keyCode == KeyEvent.KEYCODE_MENU)) {
showPopWindow(menu);
return true;
}else if ((keyCode == KeyEvent.KEYCODE_BACK) && !webview.canGoBack()&&flag==false) {
((EditText)findViewById(R.id.title)).setText("");
my_gridview.setVisibility(View.VISIBLE);
webview.setVisibility(View.GONE);
load_pro.setVisibility(View.GONE);
init();
flag=true;
return true;
}else if ((keyCode == KeyEvent.KEYCODE_BACK) && !webview.canGoBack()&&flag==true) {
flag=true;
SetDialogExit();
return true;
} 
return false;
}

最后基本问题解决,一个简单的浏览器就完成了大半。

【简易的APP开发】开发简易安卓浏览器(一)_第2张图片


你可能感兴趣的:(安卓,网络,手机浏览器)