编辑:
对于那些现在看到这一点的人,我们已经解决了这个问题。请参阅我对this question和this question的回答,以获得解释和可能的解决方案。
好吧,我以为我弄明白了,但我没有。
在Android中启动相机通常会发生这种情况:一旦你拍照,内存需求会导致系统杀死启动相机的应用程序。我的困难在于,在我的应用程序被杀之后,我无法获取最近捕获的图像的URI。在我的搜索中,我已经看到了很多针对原生Android应用的解决方案,但没有针对Phonegap。
由于相机启动的页面不是默认情况下活动加载的页面,因此更加复杂。当应用重新启动时,它想要在此应用的登录页面中重新启动,而不是需要图像数据的URI的页面。
我得到了应用程序,以便在它死之前保存它所在的最后一页,并在它启动时回想起它。我认为这样可以解决问题,但相机的回调仍然无法调用。这可能是因为即使它返回到同一页面,它也会返回到该页面的不同实例。
让我告诉你到目前为止我有什么。
这是调用相机的代码:
function capturePhoto(){
navigator.camera.getPicture(onPhotoURISuccess, onFail,
{ quality: 20, destinationType: Camera.DestinationType.FILE_URI } );
};
function onPhotoURISuccess(imageURI) {
//Do some stuff with the image, like save the URI in localStorage
}
非常基本,那里没什么特别的。只是onPhotoURISuccess()永远不会被调用。这是我如何保存并重新加载最后一页。这些都是在DroidGap活动中用Java完成的:
//Save the last page that the user was on
@Override
public void onSaveInstanceState(Bundle savedState) {
super.onSaveInstanceState(savedState);
savedState.putString("lastPage", appView.getUrl());
}
//Recall the page
@Override
public void onCreate(Bundle savedState) {
super.onCreate(savedState);
//The default page is the login page
String pageToLoad = "file:///android_asset/www/login.html";
if(savedState != null && savedState.containsKey("lastPage")) {
pageToLoad = savedState.getString("lastPage");
}
super.loadUrl(pageToLoad);
}
所以,到目前为止,我的想法是以某种方式从DroidGap活动中的相机获取onActivityResult,但我不确定它是如何工作的,我宁愿不为它创建一个Phonegap插件,因为我喜欢将代码保持为跨平台。
另一个想法是以某种方式告诉相机从Phonegap相对于应用程序目录保存图片的位置。然后,需要图片的页面可以抓取指定目录中的任何照片。但是,我还没有找到办法做到这一点。
很抱歉,如果我在搜索中忽略了某些内容,这是一个重复的问题,并提前感谢您的帮助!
答案 0 :(得分:0)
对于那些现在看到这一点的人,我们已经解决了这个问题。请参阅我对此问题的回答以及此问题的解释和可能的解决方案。