使用phonegap进行移动跨平台在Android平台开发所遇到的问题

来源:互联网 发布:ip地址转网络字节序 编辑:程序博客网 时间:2024/05/14 02:36

手头上的跨平台项目进行了差不多有两周了,从Windows8版本移植到Android平板版本过程中遇到了很多问题,但也取得了一些小突破。

1、  首先Android和IOS系统是不支持IndexedDB的,但支持WebSql,而Windows8版本的是使用的是IndexedDB,所以需要做一个中间层来适配WebSql的接口。目前该部分工作已经完成,初步的测试也通过了。

2、  Android的版本太多,模拟器版本也很多,使用Phonegap的接口会出现很多版本冲突的问题。

3、  Android基于Phonegap跨平台开发比较难调试,程序没有响应了,调试信息也不会报错,因此不知道从哪里修改bug。

4、  使用Bootstrap来重写界面的话,也会出现各个平台界面显示的不一致的问题。

5、  目前Android版本的程序打包安装到三星平板上,大部分界面显示正常,但是功能上还没有调试通过,由于以上提到的2、3点的问题,进展比较慢。

6、使用phonegap 2.9版本以上的要注意了,js代码的第一行就要调用这一句:

document.addEventListener("deviceready", deviceIsReady, false);
而不是 $(document).ready()


<script>    document.addEventListener("deviceready", deviceIsReady, false);    function deviceIsReady() {        /*This is where all of you initialization code should go.           With PhoneGap the deviceready should be the first thing*/
$.ajax({                    type: "get",                    //async: false,                    timeout: 30000,                    dataType: "text",                    url: "http://www.51shuaige.com/main.asmx/Connect",                    success: function (msg) {                        //alert(msg);                        var json = eval('(' + msg + ')');                        if (json.Status == "true") {                            sessionStorage["connect_smis"] = "true";                            $("#setting_sysinfo_connection_status").html('<span class="green">Disconnected</span>');                            $("#setting_sync_btn").attr("class", "button_class btn_height30");                        }                    },                    error: function () {                        //alert("ajax err");                        sessionStorage["connect_smis"] = "false";                        $("#setting_sysinfo_connection_status").html('<span class="red">Disconnected</span>');                        $("#setting_sync_btn").attr("class", "deactive_button_class btn_height30");                    }                });    }</script>

即使用
document.addEventListener("deviceready", deviceIsReady, false);
来代替
$(document).ready()


以上是使用phonegap进行移动跨平台在Android平台开发所遇到的问题,大家在选择phonegap作为技术选型的时候要注意了。