【问题标题】:PhoneGap 2.9.1 - Camera; crashing due to background process limitPhoneGap 2.9.1 - 相机;由于后台进程限制而崩溃
【发布时间】:2014-04-03 02:15:53
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 我需要做的就是弄清楚如何让 SharedPreferences 在项目之间工作,然后它会很好:D

标签: android cordova camera


【解决方案1】:

好吧,终于搞定了,写了一个 hacky 解决方案,但它有效。

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

  2. 我修改了 Camera Launcher 以根据输入的内容强制存储名称为 temp.jpg 或 temp.png,然后将其存储在首选项中。

  3. 在 MainActivity.java 上,如果捆绑实例不为空,我使用 this.getSharedPref(),然后检查密钥。不幸的是,我可以在 Cordova 中分配变量的唯一方法是这样做

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

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

接下来我可能会编写一个插件来使用,使用 super.loadUrl("file:///blablabla#" + file);好像没用。

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

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

编辑:

最新更新 - 所以在应用程序看似“崩溃”之后,您仍然可以恢复 Intent,因此修改源代码甚至会自动调用一个名为“customRestore”的全局 javascript 函数,该函数通过通过从意图中收集的信息,然后执行添加照片的正常程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 1970-01-01
    • 2011-11-09
    • 2014-05-23
    • 1970-01-01
    相关资源
    最近更新 更多