0

これを Samsung Galaxy S4 でテストしています。作業指示書の詳細画面で利用できる「写真を撮る」メニュー アクションがあります。別の画面で AttachmentHandler.js から launchCameraForPhoto 関数を呼び出す同じアクションを追加しましたが、この画面ではカメラが起動しません。デバッグ時に AttachmentHandler.js で TypeError 例外をスローします。作業指示書の詳細以外の画面でカメラを動作させるにはどうすればよいですか? 文脈と何か関係がありますか?参考までに launchCameraForPhoto 関数を次に示します。this._setRecordOwner(self.ui.getCurrentViewControl().lists[0].getResource().getParent()); でエラーが発生しました。

    launchCameraForPhoto: function(eventContext){
        if(SystemProperties.getProperty('si.attach.doclink.doctypes.defpath') == null){
              throw new PlatformRuntimeException('doctypesDefpathNotDefined');
              return;
          }

        var self = this;
        var createDate = eventContext.application.getCurrentDateTime();
        //mover para o set owner
        if(eventContext.getCurrentRecord()){
            this._setRecordOwner(eventContext.getCurrentRecord());
        } else {
            this._setRecordOwner(self.ui.getCurrentViewControl().lists[0].getResource().getParent());
        }
        MediaService.capturePictureAsPromise().then(function(result){
            if(result.fullPath == null){
                //throw new PlatformRuntimeWarning("cameraCancelled");
            }else{
                result.createDate =createDate;
                self._updateAttachmentResourceWithMediaInfo(result);
            }
        }).otherwise(function(error){
            //self.ui.showMessage(error.message);
        });
    },
4

1 に答える 1

0

その通りです。このコードは、リスト ウィジェットを使用した特定のビュー レイアウトを想定しています。currentRecord が正しく設定されていることを確認するだけで、その if/else ブロックの先頭がトリガーされると思います。それ以外の場合は、別の if/else 条件を追加して、アプリ内の場所に基づいて正しいレコードを取得するようにしてください。

于 2015-12-08T18:13:46.747 に答える