[問題] 讓網頁關掉Activity

看板AndroidDev作者 (LaPass)時間14年前 (2012/04/02 15:23), 編輯推噓6(6026)
留言32則, 4人參與, 最新討論串1/1
目前打算把一些功能使用網頁去呈現 也就是說,讓自己寫的apk開個網頁,顯示出來,做一些操作 例如新增資料、修改資料、刪除資料之類的 但是,現在的需求是 在網頁的動作結束之後,能用javascript關掉網頁的activity 請問該怎麼做? 已經試過 WebView 的 addjavascriptinterface 這個可以讓網頁上的javascript去呼叫自定義的java程式碼 但是系統底層有bug,2.X以前的都會當掉的樣子 這條路不通 -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.59.16.65

04/02 15:52, , 1F
試試看用javascript轉址 用webclient去攔截開啟的網址
04/02 15:52, 1F

04/02 15:52, , 2F
當抓到特定網址就把activity關掉如何?
04/02 15:52, 2F

04/02 16:30, , 3F
感謝提示,成功了 XD
04/02 16:30, 3F
試出來可行的辦法是這樣: 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)

04/03 14:58, , 4F
addJavascriptInterface Since: API Level 1
04/03 14:58, 4F

04/03 15:00, , 5F
我在2.1版API用過,雖然用途不同但應該可以吧~
04/03 15:00, 5F

04/03 18:09, , 6F
它的bug不是當掉,是2.3的部分rom(應該以全修正)會叫
04/03 18:09, 6F

04/03 18:09, , 7F
不到,這是因為google耍白痴的關係
04/03 18:09, 7F

04/03 18:09, , 8F
當然,你要hijack網址也是一種好方法就是....
04/03 18:09, 8F

04/04 15:11, , 9F
我用API 10結果整個當掉了說... QQ
04/04 15:11, 9F

04/04 18:50, , 10F
我覺得當掉是不是要看一下原因,因為我自己的專案
04/04 18:50, 10F

04/04 18:50, , 11F
以前有用到這個,是一個流通性很廣的專案(大公司的app)
04/04 18:50, 11F

04/04 18:50, , 12F
完全沒有收到類似因此當掉的QA Report說(抓頭)
04/04 18:50, 12F

04/04 19:00, , 13F
你有用UI-Thread去執行callback回java的部份嗎?
04/04 19:00, 13F

04/04 19:02, , 14F
The Java object that is bound runs in another thread
04/04 19:02, 14F

04/04 19:02, , 15F
and not in the thread that it was constructed in.
04/04 19:02, 15F

04/04 19:24, , 16F
我連放Log.d都會當掉... 他顯示什麼字串陣列的那個錯誤,去
04/04 19:24, 16F

04/04 19:24, , 17F
google後,看討論說是底層的問題
04/04 19:24, 17F

04/05 12:11, , 18F
你說的底層是指2.3 google耍白痴 改引擎卻沒有實作java
04/05 12:11, 18F

04/05 12:11, , 19F
script interface的部分,除此以外還有什麼bug嗎? @@a
04/05 12:11, 19F

04/05 12:12, , 20F
另外我沒額外開一個thread去跑 因為它會自己跑在另外
04/05 12:12, 20F

04/05 12:12, , 21F
一個instance的樣子(我沒記錯的話)
04/05 12:12, 21F

04/05 12:13, , 22F
我當年的專案支援到1.5 也是用JSI跑沒問題
04/05 12:13, 22F

04/05 12:19, , 23F
後來的版本支援道2.2 也沒有任何問題
04/05 12:19, 23F

04/05 13:00, , 24F
http://ppt.cc/ZsND 跟這個狀況一樣,應該就是你說的吧?
04/05 13:00, 24F

04/05 14:40, , 25F
是。不過這是image層的錯 不是sdk層的錯誤...er..
04/05 14:40, 25F

04/05 14:40, , 26F
另外這篇為什麼那麼眼熟 好像是我寫的?XD?
04/05 14:40, 26F

04/05 14:41, , 27F
應該不是 XD 只是用字遣詞跟範例都很像...
04/05 14:41, 27F

04/05 14:43, , 28F
另外理論上現在應該已經極少有手機有這bug了...
04/05 14:43, 28F

04/05 16:58, , 29F
所以...恭喜LaPass手上有一台稀有的手機 (誤)
04/05 16:58, 29F

04/05 17:44, , 30F
我是用模擬器說.... orz....
04/05 17:44, 30F

04/05 18:18, , 31F
我記得2.3.3的image有改過 你要不要更新以後試試看?
04/05 18:18, 31F

04/05 18:18, , 32F
2.3.3的問題還不止這個...
04/05 18:18, 32F
文章代碼(AID): #1FULG2qB (AndroidDev)
文章代碼(AID): #1FULG2qB (AndroidDev)