作者LaPass (LaPass)
看板AndroidDev
标题[问题] 让网页关掉Activity
时间Mon Apr 2 15:23:43 2012
目前打算把一些功能使用网页去呈现
也就是说,让自己写的apk开个网页,显示出来,做一些操作
例如新增资料、修改资料、删除资料之类的
但是,现在的需求是
在网页的动作结束之後,能用javascript关掉网页的activity
请问该怎麽做?
已经试过 WebView 的 addjavascriptinterface
这个可以让网页上的javascript去呼叫自定义的java程式码
但是系统底层有bug,2.X以前的都会当掉的样子
这条路不通
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.59.16.65
1F:→ ckm0089:试试看用javascript转址 用webclient去拦截开启的网址 04/02 15:52
2F:→ ckm0089:当抓到特定网址就把activity关掉如何? 04/02 15:52
3F:→ 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)
4F:推 No:addJavascriptInterface Since: API Level 1 04/03 14:58
5F:推 No:我在2.1版API用过,虽然用途不同但应该可以吧~ 04/03 15:00
6F:→ Killercat:它的bug不是当掉,是2.3的部分rom(应该以全修正)会叫 04/03 18:09
7F:→ Killercat:不到,这是因为google耍白痴的关系 04/03 18:09
8F:→ Killercat:当然,你要hijack网址也是一种好方法就是.... 04/03 18:09
9F:→ LaPass:我用API 10结果整个当掉了说... QQ 04/04 15:11
10F:→ Killercat:我觉得当掉是不是要看一下原因,因为我自己的专案 04/04 18:50
11F:→ Killercat:以前有用到这个,是一个流通性很广的专案(大公司的app) 04/04 18:50
12F:→ Killercat:完全没有收到类似因此当掉的QA Report说(抓头) 04/04 18:50
13F:推 No:你有用UI-Thread去执行callback回java的部份吗? 04/04 19:00
14F:推 No:The Java object that is bound runs in another thread 04/04 19:02
15F:→ No:and not in the thread that it was constructed in. 04/04 19:02
16F:→ LaPass:我连放Log.d都会当掉... 他显示什麽字串阵列的那个错误,去 04/04 19:24
17F:→ LaPass:google後,看讨论说是底层的问题 04/04 19:24
18F:→ Killercat:你说的底层是指2.3 google耍白痴 改引擎却没有实作java 04/05 12:11
19F:→ Killercat:script interface的部分,除此以外还有什麽bug吗? @@a 04/05 12:11
20F:→ Killercat:另外我没额外开一个thread去跑 因为它会自己跑在另外 04/05 12:12
21F:→ Killercat:一个instance的样子(我没记错的话) 04/05 12:12
22F:→ Killercat:我当年的专案支援到1.5 也是用JSI跑没问题 04/05 12:13
23F:→ Killercat:後来的版本支援道2.2 也没有任何问题 04/05 12:19
25F:→ Killercat:是。不过这是image层的错 不是sdk层的错误...er.. 04/05 14:40
26F:→ Killercat:另外这篇为什麽那麽眼熟 好像是我写的?XD? 04/05 14:40
27F:→ Killercat:应该不是 XD 只是用字遣词跟范例都很像... 04/05 14:41
28F:推 Killercat:另外理论上现在应该已经极少有手机有这bug了... 04/05 14:43
29F:推 No:所以...恭喜LaPass手上有一台稀有的手机 (误) 04/05 16:58
30F:→ LaPass:我是用模拟器说.... orz.... 04/05 17:44
31F:→ Killercat:我记得2.3.3的image有改过 你要不要更新以後试试看? 04/05 18:18
32F:→ Killercat:2.3.3的问题还不止这个... 04/05 18:18