最近有個需求是要依照後端發來的推播去開啟 webview 的指定頁面,頁面的順序像是這樣:
A page click button and then redirect to B page...
以此類推
雖然有給每一頁的網址,但推播來直接導到那頁,webview 裡的返回鍵反而沒有作用,所以我一直覺的作法就是在 A page 去找到 button 然後點擊他,在 onPageFinished 裡偵測 B page 的網址,到 B page 也做一樣的事,雖然很不 make sense 但還是記一下好惹
###
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
private fun clickJs(className: String, index: Int = 0): String = | |
"javascript:(function(){" + | |
"l=document.getElementsByClassName(" + | |
"'$className')[$index];" + | |
"l.click();" + | |
"})()" |
###
className 就是你的網頁物件的名字
index 就是可能你物件是個 list item,要指定他的位置
其實也就這樣而已,因為實在不熟 webview 也不熟網頁,所以還是花了一點時間,順帶一提要 debug webview 用 chrome 就可以了,然後設定
WebView.setWebContentsDebuggingEnabled(true)
好像要 SDK 要 19 以上才可以開,然後開啟 chrome,輸入網址 chrome://inspect,然後點擊畫面中的 inspect 就可以看到畫面,然後通常要找的東西會在 header 或 body 裡,應該是吧?!!
其實也就這樣而已,因為實在不熟 webview 也不熟網頁,所以還是花了一點時間,順帶一提要 debug webview 用 chrome 就可以了,然後設定
WebView.setWebContentsDebuggingEnabled(true)
好像要 SDK 要 19 以上才可以開,然後開啟 chrome,輸入網址 chrome://inspect,然後點擊畫面中的 inspect 就可以看到畫面,然後通常要找的東西會在 header 或 body 裡,應該是吧?!!
參考網址:
沒有留言:
張貼留言