android开发系列之一—创建一个简单的webapp

怎么样把html5网站编译为一个app?做了以下尝试:

1.用wex5直接把一个html5网站网址如:http://115.28.89.67:8097/wap-interface/ 打包,之后发现问题:

(1).页面加载很慢

(2)无法回退页面(我们网站好多页面没有回退按钮),无法退出整个web app.

2.用android webview套壳,之后发现问题:

(1)个别js无法加载运行:

A.alert() 

 /** 
             * 覆盖默认的window.confirm展示界面,避免title里显示为“:来自file:////” 
             */  
            public boolean onJsConfirm(WebView view, String url, String message,  
                    final JsResult result) {  
                final AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext());  
                builder.setTitle("提示:")  
                        .setMessage(message)  
                        .setPositiveButton("确定",new OnClickListener() {  
                                    public void onClick(DialogInterface dialog,int which) {  
                                        result.confirm();  
                                    }  
                                })  
                        .setNeutralButton("取消", new OnClickListener() {  
                            public void onClick(DialogInterface dialog, int which) {  
                                result.cancel();  
                            }  
                        });  
                builder.setOnCancelListener(new OnCancelListener() {  
                    @Override  
                    public void onCancel(DialogInterface dialog) {  
                        result.cancel();  
                    }  
                });  
          
                // 屏蔽keycode等于84之类的按键,避免按键后导致对话框消息而页面无法再弹出对话框的问题  
                builder.setOnKeyListener(new OnKeyListener() {  
                    @Override  
                    public boolean onKey(DialogInterface dialog, int keyCode,KeyEvent event) {  
                       // Log.v("onJsConfirm", "keyCode==" + keyCode + "event="+ event);  
                        return true;  
                    }  
                });  
                // 禁止响应按back键的事件  
                // builder.setCancelable(false);  
                AlertDialog dialog = builder.create();  
                dialog.show();  
                return true;  
                // return super.onJsConfirm(view, url, message, result);  
            }  
        });

弹出框样式:

 @Override
            public boolean onJsAlert(WebView view, String url, String message,
                    JsResult result){
            	final AlertDialog.Builder builder = new AlertDialog.Builder(view.getContext());  
            	 builder.setTitle("提示:")  
                 .setMessage(message)  
                 .setPositiveButton("确定", null);  
                   
		         // 不需要绑定按键事件  
		         // 屏蔽keycode等于84之类的按键  
		         builder.setOnKeyListener(new OnKeyListener() {  
		             public boolean onKey(DialogInterface dialog, int keyCode,KeyEvent event) {  
		                 //Log.v("onJsAlert", "keyCode==" + keyCode + "event="+ event);  
		                 return true;  
		             }  
		         });  
		         // 禁止响应按back键的事件  
		         builder.setCancelable(false);  
		         AlertDialog dialog = builder.create();  
		         dialog.show();  
		         result.confirm();// 因为没有绑定事件,需要强行confirm,否则页面会变黑显示不了内容。  
		         return true;  
		         // return super.onJsAlert(view, url, message, result);  
            }

放在webview内部:

 myWebView.setWebChromeClient(new WebChromeClient()
        {

});

B.history.go(-1)无法正确执行。

改为:history.go(1-history.length);

(2)启动app进入首页加载慢,中间有空白闪屏。

把首页放在本地

android开发系列之一—创建一个简单的webapp_第1张图片


在文件中配置:

android开发系列之一—创建一个简单的webapp_第2张图片

至此,一个android web app大功告成!

你可能感兴趣的:(android开发系列)