簡體   English   中英

Android WebView - 檢測是否定義了一個JS function

[英]Android WebView - detect whether a JS function is defined

我正在編寫一個在 Android 上的 WebView 下運行的 HTML/JS 應用程序。在某些情況下,可能無法加載包含該應用程序的頁面,或者可能會加載另一個頁面(例如 404 頁面或類似頁面)。 通常,我需要在應用程序頁面上運行一組 JS 函數或采取另一組操作以防應用程序頁面未加載。

我試圖通過檢測適當的 JS 是否可用來檢測是否已加載正確的頁面,但我似乎無法找到任何同步方式 - 只能通過調用 JS function 並期望通過JavasctiptInterface進行回調。 雖然這種方法是可行的,但我想知道是否有更好、更優雅、更可靠的方法來實現這一點。

我當然不能通過分析頁面的 URL 來做到這一點——它可能是正確的,但內容有誤。

有任何想法嗎?

@JavascriptInterface
public void onLoaded(String result) {
    if (result.equals("function")) {
        // defined
    } else {
       // not defined
    }
}

private void checkJSFunction() {
    loadUrl("javascript:yourJSInterfaceName.onLoaded(typeof yourFunctionName)");
}

更新:此代碼將檢查由“typeof”定義的 JS function,並通過 javascript 接口“onLoaded”將其結果返回給 java。

我認為你可以做到,請查看PhoneGap項目,你會找到答案。

PhoneGap 是一個很棒的移動平台免費框架。

暫無
暫無

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

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