0

添付ファイル phone gap プラグイン付きの電子メール コンポーザを使用して、phonegap アプリから写真を添付ファイルとして送信しようとしています。しかし、私はそれを機能させることができません。

私は2つの別々の方法を試しました。1 つ目は、Phonegap カメラ API を使用して imageURI をメール コンポーザに渡すことです。このコードは以下のとおりです。

function camera1()
        {
            navigator.camera.getPicture(sendEmail, onFail, { quality: 20,
                                        destinationType: Camera.DestinationType.FILE_URI});

            function sendEmail(imageURI) {

                window.plugins.emailComposer.showEmailComposer("Test","Test","test@gmail.com","","",true,imageURI)
            }

            function onFail(message) {
                alert('Failed because: ' + message);
            }

        }

この方法では、iPhone のカメラ アプリが起動し、写真を撮ることができます。ただし、「使用」ボタンを押すとすぐに、xcode デバッグ コンソールに次のエラーが表示されます。

2013-01-06 17:57:50.741 Saffron Housing Mobile App[1203:907] -[_ NSCFString countByEnumratingWithState:objects:count:]: インスタンス 0x1dd9d6a0 に送信された認識されないセレクター 2013-01-06 17:57:50.906 Saffron Housing Mobile App[1203:907] EmailComposer - TO 受信者を設定できません。エラー: -[ _NSCFString countByEnumratingWithState:objects:count:]: 認識されないセレクターがインスタンス 0x1dd9d6a0 2013-01-06 17:57:50.914 に送信されました Saffron Housing Mobile App[1203:907] -[_ NSCFString countByEnumratingWithState:objects:count:]:インスタンス 0x1dd1abf0 に送信された認識されないセレクター 2013-01-06 17:57:50.916 Saffron Housing Mobile App[1203:907] EmailComposer - 添付ファイルを設定できません。エラー: -[_NSCFString countByEnumratingWithState:objects:count:]: 認識されないセレクターがインスタンス 0x1dd1abf0 に送信されました 2013-01-06 17:57:51.524 Saffron Housing Mobile App[1203:907] 警告: プレゼンテーションの進行中にプレゼンテーションを試みてください!

私が使用しようとした 2 番目の方法は、画像をローカル ストレージに保存し、それを変数として電子メール コンポーザーに渡すことです。また、このメソッドに通知イベントを実装しました。以前のエラー メッセージから、カメラ イベントの後に電子メール コンポーザー プラグインがあまりにも早く開こうとしていると思われたためです (「警告: プレゼンテーションの進行中にプレゼンテーションを試みました」に基づく純粋な推測です)。 !') コードは次のとおりです。

function camera1()
        {
            navigator.camera.getPicture(sendAlert, onFail, { quality: 20,
                                        destinationType: Camera.DestinationType.FILE_URI});
                                        localStorage.setItem('photo', imageURI);

            function sendAlert()
                navigator.notification.confirm('Send Picture?',sendEmail,'Send Picture?','Yes,No')

            function sendEmail(1) {

                var photo = localStorage.getItem('photo')
                window.plugins.emailComposer.showEmailComposer("Test","Test","test@gmail.com","","",true,photo);
            }

            function onFail(message) {
                alert('Failed because: ' + message);
            }

        }

このコードの問題は、カメラがまったく起動しないことです。ボタンをクリックしても何も起こりません。デバッグコンソールには何もありません。

さらに複雑なことに、プラグインが適切に実装されていることを確認するために、基本的な電子メール コンポーザ イベントを開こうとしました。画像を添付しようとしない場合、メール コンポーザーは、少なくとも件名と本文が入力された状態で開きます。ただし、受信者は入力されません。コードは次のとおりです。

function camera()
        {
            window.plugins.emailComposer.showEmailComposer("Test","Test","test@gmail.com","","",true,"")

        }

私の質問は、私が間違っていることは何ですか?

4

2 に答える 2

1

toRecipients、、、およびパラメーターは配列である必要がありますがccRecipients、それらを文字列として渡しています。bccRecipientsattachments

window.plugins.emailComposer.showEmailComposer("Test", "Test", ["test@gmail.com"], [], [], true, [imageURI]);

このようにして、もう一度やり直してください。

于 2013-01-06T18:24:24.777 に答える
0

これがエラーの原因かどうかはわかりませんが、添付ファイルのパスは["/var/mobile/Applications/351............F3/yourapp.app /www/images/yourimage.png"]

于 2013-03-22T10:00:21.653 に答える