0

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

我正在使用 HTML5 画布元素执行此操作。当应用程序尝试执行上述操作时,我得到一个内存不足的错误,在此之后应用程序立即退出。应用程序图标也在此之后发生变化。我正在使用 WebWorks SDK 2.3 和 phonegap 1.7 版。

我浏览过黑莓论坛,内存问题似乎是一个已知的问题。有没有其他方法可以执行此操作以避免此错误?

此问题特定于 6.0 BB 设备。相同的应用程序在 7.0 设备上运行良好。

4

1 回答 1

1

尝试

  1. 从您的配置文件中删除此代码(包括开始和结束标记)

    边缘:导航模式=“焦点”

    功能 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 应用程序自动完成)。

以上三项降低了低设备内存错误的概率。

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

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

于 2012-12-04T06:32:04.913 回答