簡體   English   中英

如何在webview中處理回調

[英]How to handle callbacks in webview

我正在研究一個Android項目,並且有一個關於如何在不同的webview中進行回調的問題。 我也在項目中使用了JSInterface。 這里我有2個網頁瀏覽量。 一個有一個索引頁面,另一個是一個疊加層(雖然仍然是一個html頁面。)我想要做的是,如果任何用戶點擊疊加層上的某些鏈接,它應該觸發一個回調函數,該函數寫在java文件中,其中索引頁面通過JSInterface連接。 這可能聽起來令人困惑,但我已經畫了一些東西來幫助說清楚!

謝謝! 在此輸入圖像描述

您可以使用myurl://函數等自定義URL方案作為功能鏈接。 然后為WebView的shouldOverrideUrlLoading事件編寫一個事件處理程序,在該事件中決定如何處理URL:指示webview加載它,或者執行一些自定義操作。

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)  
{  
    if (url.startsWith("myurl://"))  
    {  
        // Parse further to extract function and do custom action  
    }
    else  
    {  
        // Load the page via the webview
        view.loadUrl(url);  
    }  
    return true;  
}  

我使用startsWith檢查這個快速和臟的示例的URL,但是您應該考慮使用android.net.Uri.parse來解析URL。

這應該允許您調用Java函數foo()而無需通過第一個WebView。

如果你想要瀏覽第一個webview,那么可以像這樣在JSInterface上調用一個函數(其中webView1是通過findViewById檢索的第一個WebView):

webView1.loadUrl("javascript:myjsinterface.myjsfunc();")

暫無
暫無

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

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