看板 AndroidDev 關於我們 聯絡資訊
目前打算把一些功能使用網頁去呈現 也就是說,讓自己寫的apk開個網頁,顯示出來,做一些操作 例如新增資料、修改資料、刪除資料之類的 但是,現在的需求是 在網頁的動作結束之後,能用javascript關掉網頁的activity 請問該怎麼做? 已經試過 WebView 的 addjavascriptinterface 這個可以讓網頁上的javascript去呼叫自定義的java程式碼 但是系統底層有bug,2.X以前的都會當掉的樣子 這條路不通 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.16.65
ckm0089:試試看用javascript轉址 用webclient去攔截開啟的網址 04/02 15:52
ckm0089:當抓到特定網址就把activity關掉如何? 04/02 15:52
LaPass:感謝提示,成功了 XD 04/02 16:30
試出來可行的辦法是這樣: wv = (WebView)findViewById(R.id.webView); wv.loadUrl("http://nothishost.com"); wv.setWebViewClient(new WebViewClient() { @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { if("test:close".equalsIgnoreCase(url)) finish(); super.onPageStarted(view, url, favicon); } }); 在開始讀取頁面的時候,會去檢查網址是不是test:close 如果是的話,就把activity關掉 另外,addjavascriptinterface 在api lv15上試過是ok的 用addjavascriptinterface的功能比較強 只要java能寫得出來的通通都能執行 只是版號真的太高,用那個的話,會有多人不能用 ※ 編輯: LaPass 來自: 61.59.16.65 (04/02 16:42)
No:addJavascriptInterface Since: API Level 1 04/03 14:58
No:我在2.1版API用過,雖然用途不同但應該可以吧~ 04/03 15:00
Killercat:它的bug不是當掉,是2.3的部分rom(應該以全修正)會叫 04/03 18:09
Killercat:不到,這是因為google耍白痴的關係 04/03 18:09
Killercat:當然,你要hijack網址也是一種好方法就是.... 04/03 18:09
LaPass:我用API 10結果整個當掉了說... QQ 04/04 15:11
Killercat:我覺得當掉是不是要看一下原因,因為我自己的專案 04/04 18:50
Killercat:以前有用到這個,是一個流通性很廣的專案(大公司的app) 04/04 18:50
Killercat:完全沒有收到類似因此當掉的QA Report說(抓頭) 04/04 18:50
No:你有用UI-Thread去執行callback回java的部份嗎? 04/04 19:00
No:The Java object that is bound runs in another thread 04/04 19:02
No:and not in the thread that it was constructed in. 04/04 19:02
LaPass:我連放Log.d都會當掉... 他顯示什麼字串陣列的那個錯誤,去 04/04 19:24
LaPass:google後,看討論說是底層的問題 04/04 19:24
Killercat:你說的底層是指2.3 google耍白痴 改引擎卻沒有實作java 04/05 12:11
Killercat:script interface的部分,除此以外還有什麼bug嗎? @@a 04/05 12:11
Killercat:另外我沒額外開一個thread去跑 因為它會自己跑在另外 04/05 12:12
Killercat:一個instance的樣子(我沒記錯的話) 04/05 12:12
Killercat:我當年的專案支援到1.5 也是用JSI跑沒問題 04/05 12:13
Killercat:後來的版本支援道2.2 也沒有任何問題 04/05 12:19
LaPass:http://ppt.cc/ZsND 跟這個狀況一樣,應該就是你說的吧? 04/05 13:00
Killercat:是。不過這是image層的錯 不是sdk層的錯誤...er.. 04/05 14:40
Killercat:另外這篇為什麼那麼眼熟 好像是我寫的?XD? 04/05 14:40
Killercat:應該不是 XD 只是用字遣詞跟範例都很像... 04/05 14:41
Killercat:另外理論上現在應該已經極少有手機有這bug了... 04/05 14:43
No:所以...恭喜LaPass手上有一台稀有的手機 (誤) 04/05 16:58
LaPass:我是用模擬器說.... orz.... 04/05 17:44
Killercat:我記得2.3.3的image有改過 你要不要更新以後試試看? 04/05 18:18
Killercat:2.3.3的問題還不止這個... 04/05 18:18