10

Phonegap通知を使用して、Phonegapアプリにエラーメッセージを表示し、ユーザーがエラーを電子メールで送信できるようにしようとしています。唯一の問題は、エラーメッセージをコールバック関数に渡せず、電子メールが役に立たなくなることです。

私が今持っているコードは次のようになります:

function displayError(errormsg) {
    navigator.notification.confirm(
                                   errormsg,
                                   onConfirm,
                                   'Error',
                                   'Submit, Cancel'
                                   );
}
function onConfirm(buttonIndex){
    if (buttonIndex === 1){
        alert(errormsg);
    }

}

これはによって呼び出されdisplayError("Test")、エラーの内容になりますTest。次に、に渡したいのですerrormsgonConfirm、これを行う方法、または可能かどうかがわかりません。

私が考えていた可能な解決策はこれでした:

function displayError(errormsg) {
    test = errormsg
    navigator.notification.confirm(
                                   errormsg,
                                   onConfirm,
                                   'Error',
                                   'Submit, Cancel'
                                   );
}
function onConfirm(buttonIndex){
    if (buttonIndex === 1){
        alert(test);
    }

}

errormsgただし、新しいエラーが表示されても、それは変わりません。シミュレーターの設定で、アプリが2つのエラーをスローするため、これを確認しました。最初のエラーは、そのメソッドを使用して渡すときに正常に機能しtestますが、直後に続く2番目のエラーは、最新の変数ではなく、元の変数を使用します。

4

1 に答える 1

37
function displayError(errormsg) {
    navigator.notification.confirm(
        errormsg,
        function(buttonIndex){
            onConfirm(buttonIndex, errormsg);
        },
        'Error',
        'Submit, Cancel'
        );
}
function onConfirm(buttonIndex, errormsg){
    if (buttonIndex === 1){
        alert(errormsg);
    }

}

匿名関数でラップするのはどうですか?そうすれば、スコープを維持しながら、必要な数のパラメーターを渡すことができます。

于 2012-12-04T23:51:25.483 に答える