Android webview调用asset下的本地webapp,不能传递参数和hash的bug,怎么解?

2013-11-16 17:27:41 +08:00
 awebird
[目前的问题]
我这边是web侧开发,和Android的同事合作一个hybrid app,web部分(html css js)整个包放在asset/www/下(通过ajax和服务器通信),Android侧使用 loadUrl("file:///android_asset/www/demo_project/#/demo/123");调用,出现 Page Not Found

同样的webapp部分,放在cordova(phonegap开源)的asset下是可以正常运行的

[可能的原因]
查了下,最后定位在Android的issue 17535 (即webview调用本地 不能传参数和#hashtag)
https://code.google.com/p/android/issues/detail?id=17535

有一个解决方案
http://bricolsoftconsulting.com/fixing-the-broken-honeycomb-and-ics-webview/
https://github.com/bricolsoftconsulting/WebViewIssue17535Fix

由于是Android侧的我这边不太懂,而且不知是否可行。这个请问下大家有没有遇到过类似的问题,有没更便捷可行的方案?
6190 次点击
所在节点    程序员
5 条回复
AlfredZhao
2013-11-16 17:57:05 +08:00
没用过,可以找同事写个webview测试一下~收下了,过几天可能也会遇到这个问题。飘过~!
Archangel_SDY
2013-11-17 14:21:51 +08:00
要不先loadUrl("file:///android_asset/www/demo_project"), 再从js端改window.location?
awebird
2013-11-18 09:50:42 +08:00
@Archangel_SDY 但是hash传不进入,js端怎么知道location到哪里呢?
Archangel_SDY
2013-11-18 11:12:13 +08:00
@awebird 给js传参可以这样:

loadUrl("javascript:go('#/demo/123')"), go是js函数.
awebird
2013-11-18 12:35:35 +08:00
@Archangel_SDY 多谢,这个可行!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/89531

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX