• 请不要在回答技术问题时复制粘贴 AI 生成的内容
awebird
V2EX  ›  程序员

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

  •  
  •   awebird · Nov 16, 2013 · 7413 views
    This topic created in 4740 days ago, the information mentioned may be changed or developed.
    [目前的问题]
    我这边是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侧的我这边不太懂,而且不知是否可行。这个请问下大家有没有遇到过类似的问题,有没更便捷可行的方案?
    5 replies  •  1970-01-01 08:00:00 +08:00
    AlfredZhao
    AlfredZhao
    Nov 16, 2013
    1
    没用过,可以找同事写个webview测试一下~收下了,过几天可能也会遇到这个问题。飘过~!
    Archangel_SDY
    Archangel_SDY
    Nov 17, 2013❤️1
    2
    要不先loadUrl("file:///android_asset/www/demo_project"), 再从js端改window.location?
    awebird
    awebird
    OP
    Nov 18, 2013
    3
    @Archangel_SDY 但是hash传不进入,js端怎么知道location到哪里呢?
    Archangel_SDY
    Archangel_SDY
    Nov 18, 2013❤️1
    4
    @awebird 给js传参可以这样:

    loadUrl("javascript:go('#/demo/123')"), go是js函数.
    awebird
    awebird
    OP
    Nov 18, 2013
    5
    @Archangel_SDY 多谢,这个可行!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   542 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 65ms · UTC 20:15 · PVG 04:15 · LAX 12:15 · JFK 15:15
    ♥ Do have faith in what you're doing.