簡體   English   中英

如何在按返回鍵時關閉Android中的HTML對話框

[英]How to close html dialog in Android on press of back key

我已經在Android中創建了一個Web視圖,其中正在加載我的html文件。單擊按鈕時,我會顯示一個彈出窗口,如用HTML本身開發的警報對話框。 現在的問題是,一旦我在Android手機上按返回按鈕,應用程序就會返回到上一頁。但是具有相同的行為,只有對話框應該關閉並且應用程序應該在同一頁面上。 我該如何實現? 謝謝

我認為您不需要JavascriptInterface(如@Henil發布)。 我會這樣做:

在Java中-onBackPressed:

if (webView.getUrl.equals("yourPopupUrl.com")) {
  webView.loadUrl("javascript:goAwayPopup();");
  return;
}

在JS中:

function goAwayPopup() {
  var popUp = document.getElementById("popUp"); // in my case popUp is just a <div>
  var isVisible = popUp .offsetWidth > 0 || popUp .offsetHeight > 0;
  if (isVisible) {
    popUp.style.display = 'none';
  }
}

編輯:

使用JavascriptInterface的解決方案:

在JS中-對話框彈出時調用的函數:

function popUp() {
  if (typeof Android != "undefined"){ 
    if (Android.popUp!= "undefined") {
      Android.popUp();
    }
  }
}

在Java中:

在您的Activity中定義一個內部類和一個布爾字段

聲明通往您的webview的橋梁

覆蓋onBackPressed

private boolean isPopUpVisible = false;

// some code...

webView.addJavascriptInterface(new MyJavascriptBridge(), "Android");

// some code...

class MyJavascriptBridge { 

  public void popUp() {
    if (isPopUpVisible)
      isPopUpVisible = false;
    else
      isPopUpVisible = true; 
  }
}

onBackPressed:

if (isPopUpVisible) {
  webView.loadUrl("javascript:goAwayPopup();");
  return;
}

JS,再次:

function goAwayPopup() {
  // close alert here...
  popUp(); // sets isPopUpVisible to false
}

這是關閉警報的帖子: 如何“自動關閉”警報框

使用Java腳本界面並從該界面處理html頁面

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM