getPicture()
バックボーン ビューのボタンをクリックしたときに、ユーザーが写真/ビデオを選択できるようにしようとしています。私のビューコードの関連セクションは次のとおりです。
events: {
"click .add-moment-media": "addMedia",
},
addMedia: function(e) {
navigator.camera.getPicture(this.successAddMedia, this.errorAddMedia, {
quality: 20,
destinationType: Camera.DestinationType.FILE_URI,
sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
mediaType: Camera.MediaType.ALLMEDIA
})
},
successAddMedia: function(imageURI) {
showAlert("Your photo has been uploaded!", "Your Photo" + imageURI);
},
errorAddMedia: function(message) {
showAlert("Failed because: " + message, "Failure");
}
テスト目的で、成功したときに画像の URI でアラートを表示しようとしています。
問題:ボタンを押すと、期待どおりにギャラリーが表示され、画像を選択できます。アプリに戻ると、アラートはありません。成功アラートもエラー アラートもありません。しかし、ボタンをもう一度クリックすると、前回表示されるはずのアラートが表示され、その上にフォト ギャラリーが表示されます。getPicture()
次にボタンが押されるまで、コールバックが起動したくないかのようです。
キッカーは次のとおりです。アプリの他の場所では、適切なタイミングでコールバックを起動してgetPicture()
、チャームのように動作しています (PictureSourceType.CAMERA
代わりに を使用し、行がバックボーン ビューにないことを除いて)。PictureSourceType.PHOTOLIBRARY
このビューで作業中のコード行をコピーして貼り付けると、上記のコードと同じようにコールバックが遅延します。
これは Android で発生しています。PhoneGap や Backbone などに文書化されていない問題があるかどうかはわかりません。何が問題なのかについて誰か考えがあれば、私は感謝します!