[英]How to handle OAuth URL callbacks with Intent filters if authentication is done with 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.