PhoneGap 2.9.1 - 相机;由于后台进程限制而崩溃



所以经过大量调查,我终于让我的应用程序能够恢复状态(我只是修改了 MainActivity 中的 OnCreate 方法.java以加载一个"恢复"页面在活动终止时,如果有保存的捆绑实例)

我相信一旦我解决了最后一个问题,一切都会好起来的,我终于可以睡觉了。

一旦应用程序由于后台进程限制或"不检查活动"的可能性而被终止,我如何从PhoneGap中的相机获取活动/意图结果(我有数量惊人的用户启用了这些限制)

我认为可以让相机将文件保存在临时目录中,然后我只是通过javascript将URI作为哈希url传递(所以它会像 file:///android_www/index-restore.html#URI_TO_IMAGE 一样)

但我唯一的问题是 - 我如何在PhoneGap中开始这个?我知道该怎么做,因为图像的临时存储和通过onCreate检索位置

好的终于做到了,写了一个黑客解决方案,但它有效。

  1. 我修改了CordovaInterface和CordovaActivity,添加了一个名为"getSharedPref"的函数,该函数返回了一个可以在整个应用程序中访问的共享首选项。

  2. 我修改了相机启动器以强制存储的名称为临时.jpg或临时.png具体取决于输入的内容,然后将其存储在首选项中。

  3. 在 MainActivity.java 上,如果捆绑实例不为 null,我使用 this.getSharedPref(),然后检查密钥。不幸的是,我可以在科尔多瓦中分配变量的唯一方法是通过

    super.loadUrl("javascript: var global_image = '" + file + "'");
    

然后我按照通常的例程在我的程序中添加文件,到目前为止一切都有效!快乐的日子

在这条路上,我可能会写一个插件来使用,使用 super.loadUrl("file:///blablabla#" + file); 似乎不起作用。

到目前为止,唯一的问题是图像没有正确调整大小和旋转,我仍然需要为 PhotoGallery 实现这一点,但到目前为止一切顺利。

编辑:我已经设法调整了照片的大小并重新定位了:)下一个问题是现在将其实施到照片库 - intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT,文件);由于某种原因似乎不适用。

编辑:

最新更新 - 所以事实证明,在应用程序似乎"崩溃"之后,无论如何你仍然可以得到意图,所以修改源代码更多,它现在会自动调用一个名为"customRestore"的全局javascript函数,该函数传递从意图收集的信息,然后通过添加照片的正常例程。

最新更新