Javascript Phonegap应用程序上的Blackberry内存不足问题

Javascript Phonegap应用程序上的Blackberry内存不足问题,javascript,cordova,jquery-mobile,blackberry,Javascript,Cordova,Jquery Mobile,Blackberry,我正在为BlackBerry 6.0+设备开发一个JQM+Phonegap应用程序。 在应用程序中,我需要以Base64编码格式将图像上载到服务器 我使用HTML5画布元素来实现这一点。 当应用程序尝试执行上述操作时,出现内存不足错误,在此之后应用程序立即退出。在此之后,应用程序图标也会更改。 我使用的是WebWorksSDK 2.3和phonegap版本1.7 我已经浏览过黑莓论坛,内存问题似乎是一个众所周知的问题。 是否有其他方法可以执行此操作以避免此错误 此问题特定于6.0 BB设备。 同

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

我使用HTML5画布元素来实现这一点。 当应用程序尝试执行上述操作时,出现内存不足错误,在此之后应用程序立即退出。在此之后,应用程序图标也会更改。 我使用的是WebWorksSDK 2.3和phonegap版本1.7

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

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

试试看

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

    rim:导航模式=“焦点”

    feature id=“blackberry.ui.dialog”

  • 动态加载脚本并在脚本加载并准备就绪时执行回调函数以上载图像,这种行为最可能的原因是,应用程序关闭时,html页面中包含的资源不会被释放。此外,黑莓的cordons插件是一个巨大的资源,因此它应该占用大量内存

    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);
    }
    
  • 如果在安装或卸载应用程序时,应用程序未清除设备存储或本地存储或设备存储,则必须对此进行编码(对于iOS和android应用程序,自动完成)

  • 以上三种降低了低设备内存错误的概率

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


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

    您的应用程序中是否使用了映射功能?否,我没有使用任何映射功能。设备中的内存可能会减少(不是SD卡)。请删除6.0设备中的一些应用程序,然后重试。