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

来源:互联网 发布:金碟软件 编辑:程序博客网 时间:2024/05/16 07:56

怎么样把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 web app大功告成!

1 0
原创粉丝点击