2011-08-31 13 views
6

navigator.notification.alert()をプログラムで解除する方法はありますか?ロケーションサービスのエラーが発生したときに警告しますが、クリアされた場合は、手動で行う必要はありません。プログラムで電話の通知を却下する方法

アイデアや解決策はありますか?

ありがとうございます!

答えて

1

ダイアログボックスalert()をプログラムで閉じることはできません。

alert()アラートと同じように見える/動作する独自のカスタムオーバーレイを実装するのではなく、必要なときにいつでも簡単に破棄することができます。私はこれにbit more investigationもしなかったし、私はもはやPhoneGapのalert()ダイアログが実際にネイティブJavaScriptのダイアログと同じであると信じてい

Javascript close alert box

編集

:いくつかの追加の議論はここにあります。彼らは、(AndroidとiOSの両方で)ネイティブコードに戻ってアラートを表示するためにいくつかの巧妙なトリックを使用しています。

このように、ダイアログをプログラムで閉じることは可能ですが、JavaScriptコード内からは直接確認できません。 JavaScriptからネイティブコードにコールバックし、Phonegapアラートビューを見つけて解除するには、同様のトリッキーを使用する必要があります。最初の部分はかなり難しいかもしれません。第二部は簡単です:

Hide UIAlertView programmatically?

0

おそらく、div要素のうちダイアログまたは他のいくつかの要素を作成し、簡単にそれを消すことができますので、ユーザーにそれを表示します。

はJavaScript

function geo_error() { 
    //only append error message if none exists 
    if ($('#page_container').find('.geo_error').length == 0) { 
     $('#page_container').append('<div class="geo_error">A Geolocation Error Has Occured</div>'); 
    } 
} 
function get_success(position) { 
    //hide the error message on success 
    $('#page_container').find('.geo_error').hide(); 
} 

CSS

.geo_error { 
    position: absolute; 
    top: 10px; 
    bottom: 10px; 
    left: 20px; 
    right: 20px; 
    z-index: 1000; 
} 
2

ねえ、私はこのためのJavaファイルの変更を持っています。 のsrc /アンドロイド/ Notification.java

まずこのことを宣言します。..

private AlertDialog alertbox; 

その後、あなたはjavascriptの

から "却下" 送るケースを追加)(dlg.createへの参照を追加しました
else if (action.equals("dismiss")) { 
    this.dismissAll(); 
} 

追加する方法:

public void dismissAll(){ 
    alertbox.dismiss(); 
} 

忘れずに通知に同じものを追加してください。通知プラグイン

dismiss: function(message, completeCallback, title, buttonLabel) { 
    var _title = (title || "Alert");//Doesnt Matter! 
    var _buttonLabel = (buttonLabel || "OK");//Doesnt Matter! 
    exec(completeCallback, null, "Notification", "dismiss", [message, _title, _buttonLabel]); 
}, 

のWWWフォルダにjsが今、すべての場所で

alertbox = dlg.create(); 
alertbox.show(); 

代わりの

dlg.create(); 
dlg.show(); 

を追加します。

そして、あなたは

navigator.notification.dismiss("",null,""); 

これは、開かれたすべてのアラート/確認/プロンプト閉じますを呼び出すことによって行ってもいいです。

関連する問題