Phonegap应用程序中的Blackberry Memory Low问题

时间:2012-10-22 11:41:27

标签: javascript cordova jquery-mobile blackberry

我正在为BlackBerry 6.0+设备开发JQM + Phonegap应用程序。 在应用程序中,我需要以Base64编码格式将图像上传到服务器。

我使用HTML5 canvas元素执行此操作。 当应用程序尝试执行上述操作时,我得到一个低内存错误,应用程序退出后立即执行。应用程序图标也会在此后更改。 我正在使用WebWorks SDK 2.3和phonegap 1.7版。

我经历过黑莓论坛,内存问题似乎是众所周知的。 有没有其他方法可以执行此操作以避免此错误?

此问题特定于6.0 BB设备。 相同的应用程序在7.0设备上正常工作。

1 个答案:

答案 0 :(得分:1)

尝试

  1. 从配置文件中删除此代码(包括打开和关闭标记)

      

    rim:导航模式=“焦点”

         

    feature id =“blackberry.ui.dialog”

  2. 动态加载脚本并执行回调函数以在脚本加载并准备好时上传图像,此行为的最可能原因是您在html页面中包含的资源不会在申请结束。黑莓的警戒线插件也是一个巨大的资源,所以它应占用大量内存。

    function loadScript(url, callback)
    {
        // adding the script tag to the head as suggested before
        var head = document.getElementsByTagName('head')[0];
        var script = document.createElement('script');
        script.type = 'text/javascript';
        script.src=url;
        // then bind the event to the callback function 
        // there are several events for cross browser compatibility
        script.onreadystatechange = callback;  // not working on OS5
        script.onload = callback;  // not working on OS5
        // fire the loading
        head.appendChild(script);
    }
    
  3. 如果您的应用在安装或卸载应用时未清除设备存储或本地存储或设备存储,则必须对此进行编码(自动为iOS和Android应用完成)。

  4. 以上三项降低了设备内存错误的可能性。

    从最终用户的角度来看,如果应用不使用嵌入式媒体,请取消选中或取消选择“使用嵌入式媒体”

    如果与服务器进行通信,您可能需要重构代码以减少用于执行代码的平均时间,并采用一些压缩算法来减少网络过载。