0

我发现的关于我的问题的唯一上一个问题是:Android app reverts back to index page after getting a picture

但它并没有真正回答,我的 Manifest 在主要的 Activity 标签上有这个:

android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"

我正在使用 Android 上的 jQueryMobile 1.3.1 编写 PhoneGap 2.8.1 应用程序,但遇到了一个(不是那么)烦人的渲染问题。

我这样称呼camera.getPicturePhoneGap的功能:

capturePicture: function() {

    navigator.camera.getPicture(
        app.onCameraSuccess, 
        app.onCaptureError, 
        { quality : 50,
          destinationType : Camera.DestinationType.DATA_URL,
          sourceType : Camera.PictureSourceType.CAMERA,
          encodingType: Camera.EncodingType.JPEG,
          targetWidth: 250,
          targetHeight: 250,
          saveToPhotoAlbum: false 
        }
    );
},

并像这样检索 Base64 编码的图像:

onCameraSuccess: function( b64EncodedImage ) {


    var imageEncoded = "data:image/jpeg;base64," + b64EncodedImage;

    $('div.accred_pic_preview')
        .fadeOut()
        .css('backgroundImage', 'url("' + imageEncoded + '")')
        .fadeIn()

    // The accred_pic_input is hidden, so I must call trigger event manually

    $("#accred_pic_input").val( imageEncoded ).trigger("change");

    app.goTo("accred"); //  <== I must manually go to jQueryMobile page ID
}

一切都很好,但是当返回应用程序时,webView 会重新加载(或刷新)内容。

编辑:那部分令人困惑,让我们忘记它

问题是当我所需的输入正常时,我在隐藏输入上触发更改事件以激活提交按钮。如下所示,我必须使用我的功能手动转到上一个活动页面,因此手动更改页面时不会触发更改事件(当我最终到达目标页面时更改已经生效)

编辑感谢Robin C Samuel清除我的思绪 当捕获 OK(通过本机 android 照片应用程序)时,焦点将返回到我的应用程序。那时,我的应用程序是 JQM/PhoneGap 组合,应用程序的 webView 部分被刷新,以便在我以编程方式转到调用捕获插件的页面之前显示默认(索引)JQM 页面,其中包含我的表单。

我想避免这种行为,并在捕获 OK 后直接返回调用捕获插件的页面。

有谁知道强制PhoneGap的webView在捕获后不刷新内容的方法?

4

2 回答 2

3

请检查您是否已将 capturePicture 功能赋予表单内的按钮。如果是这样,默认行为是重新加载页面。CameraPlugins 文档中给出的示例是使用造成混乱的按钮。只需将按钮更改为 div 或其他内容并尝试。它不会重新加载。

于 2015-05-27T09:22:33.153 回答
0

如果您从索引页面调用相机 api,然后在成功时重定向到包含表单的页面,只需简单地替换事件即可。

您可以稍微更改相机调用功能,首先重定向页面,

capturePicture: function() {

    setTimeout("app.goTo('accred');", 500); //  <==  Redirect the page here

    navigator.camera.getPicture(
        app.onCameraSuccess, 
        app.onCaptureError, 
        { quality : 50,
          destinationType : Camera.DestinationType.DATA_URL,
          sourceType : Camera.PictureSourceType.CAMERA,
          encodingType: Camera.EncodingType.JPEG,
          targetWidth: 250,
          targetHeight: 250,
          saveToPhotoAlbum: false 
        }
    );
},

并且在凸轮成功后简单地避免重定向。

于 2013-07-05T09:23:46.300 回答