这篇文章上次修改于 821 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

现在个人网站(博客)基本都已经实现了响应式界面,在手机端上也可以很方便的查看,那么如果把网站打包到Android的应用中会是怎么样呢?在Android开发环境中有一个WebView控件就可以实现!
成品示例
开发环境:Android Studio或配置了Android SDK的Eclipse
Android Studio环境的配置方法可以自行查找相关教程配置
这里以Android Studio为例:

第一步 进入Android Studio以后选择Start a new Android Studio project
界面选择Empty Activity就可以,点击next
配置
出现以上界面

  Name:你的项目名称
  Package Name:你的包名
  Save Location:工程文件存储路径
  Language:要用什么语言编写

API我选择的5.1,选择更高的等级的API一定要查看自己的手机是否支持对应的版本
点击Finish等一会就创建好了
第二步 进入开发环境后需要耐心等待,需要等待底部Build处显示全部OK了并且工具都可以使用了才可以

第三步 Activity_main.xml是布局文件,MainActivity.java是对应布局文件的逻辑文件,在manifest文件下有个AndroidManifest.xml文件可以指定应用的权限和注册模块
使用WebView给网页套壳首先就要在Activity_main.xml里放入一个WebView控件

删除掉默认的HelloWorld将WebView移到界面中
其Text中的代码应该是类似这样的(id可以不同 但是一定要让这里的id和java文件中的id一样)

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

进入MainActivity.java中写逻辑代码

public class MainActivity extends AppCompatActivity {
    WebView webview;
    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏
            setContentView(R.layout.activity_main);
            //找到WebView的ID
            webview = (WebView) findViewById(R.id.webView1);//webView1就是刚才定义的id
            assert webview != null;
            WebviewSettings();
            download();
    }
    //webview设定
    public void WebviewSettings(){
        //开启JavaScript
        webview.getSettings().setJavaScriptEnabled(true);
        //允许JavaScript打开新窗口
        webview.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
        //启用缓存模式
        webview.getSettings().setAppCacheEnabled(true);
        webview.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
        // 开启 DOM storage API 功能
        webview.getSettings().setDomStorageEnabled(true);
        //设置WebView的Client
        webview.setWebChromeClient(new WebChromeClient());
        //这个要有,因为不加这个会唤起系统自带浏览器
        webview.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });
        //加载网址
        String targetUrl = "<URL>";
        webview.loadUrl(targetUrl);

    }

    //下载功能
    public void download(){
        webview.setDownloadListener(new DownloadListener() {
            @Override
            public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
                Uri uri = Uri.parse(url);
                Intent intent = new Intent(Intent.ACTION_VIEW, uri);
                startActivity(intent);
            }
        });
    }
    //按返回键控制网页后退
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KEYCODE_BACK) && webview.canGoBack()) {
            webview.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
 }

在String targetUrl = "<URL>";中,将<URL>替换成自己的域名 出现错误可能是没有引用包,可以把光标点在错误的地方按快捷键ALT+ENTER,点击Import Class就可以了

在AndroidManifest.xml中设置权限

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

将这个写在<application的上面
有这个权限才能联网

第四步 全部写完以后点击Run(Shift+F10)就可以运行,模拟器的配置方法自行搜索
点击工具栏中的Build->Build Bundle(s)/APK(s)->Build APK(s)就可以打包成可安装的APK文件了