收藏
回答

【求官方大哥帮忙,急】webView 不能加载本地html文件吗?

问题模块 框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
API和组件 小程序 Bug web-view 客户端 6.7.3 2.4.2

真机上 webView 无法加载下载到本地的html文件或者xhtml文件(格式和html一样)。


该html文件路径 以"wxfile://"开头,经过 FileSystemManager.access() 校验确实存在,但是将该路径赋值到webView的src时则提示错误「 net:ERR_UNKNOWN_URL_SCHEME 」,  将scheme替换成"file://"则展示一片空白(之所以这么替换是因为模拟器上替换成这个可以访问本地html文件,二者webView原理有差异这个我知道)


我只是想知道 真机上 webView 能否加载本地的html文件或者xhtml文件啊?如果可以,我应该怎么做?


看官方文档没有明确说webView不可以加载本地的html,跪求官方大哥或者其它大哥指点一二,现在项目可行性预研关键点卡在这了,着急T T


万分感谢!!!



最后一次编辑于  2018-12-12  (未经腾讯允许,不得转载)
回答关注问题邀请回答
收藏

11 个回答

  • jiabin
    jiabin
    2018-12-13

    咦,还有这种操作吗!

    2018-12-13
    赞同 4
    回复 2
    • 鸿 昊
      鸿 昊
      2018-12-13

      客户端这种操作很正常啊老哥,静态活动网页的预加载和很多webView业务优化等都需要加载本地html文件啊。 我现在的需求是加载epub书籍(html文件的集合),大哥有啥好思路吗?

      2018-12-13
      回复
    • jiabin
      jiabin
      2018-12-13回复鸿 昊

      官方说不支持嘛,放到网站上再引用呗,再说小程序包太大了也不好

      2018-12-13
      回复
  • 韬々
    韬々
    2018-12-12

    这种操作,我们,是,不支持的。

    2018-12-12
    赞同 1
    回复 6
    • 鸿 昊
      鸿 昊
      2018-12-12

      我个人觉得这个需求是合理的啊,比方说想实现网页的预加载和断网访问等。

      目前实际的需求是想在小程序里阅读epub书籍(epub书籍文件可以看做html文件的集合),而后台目前没有人力去把epub书籍全部转化为服务端网页,所以想依靠小程序端用webView加载本地的html文件来实现。

      想请教一下官方大哥,这个不支持是出于安全考虑吗?如果不是的话,后续会考虑支持吗?

      非常感谢!!!

      2018-12-12
      2
      回复
    • 韬々
      韬々
      2018-12-12

      如果一定要做这件事,在目前的框架下,我能想到比较好的办法是:把你们的HTML页面转换成rich-text组件能用的node list,再用它来渲染对应的内容。


      或者就只能像你说的那样了,把书籍全部网页化存到服务端。

      2018-12-12
      1
      回复
    • 鸿 昊
      鸿 昊
      2018-12-13回复韬々

      感谢你的回复,其实我第一的预研方向就是rich-text了(毕竟小程序下的 webView 通信极其苛刻、会自动铺满全屏且层级最高等问题使得业务定制化几乎不可能), 但是 把 epub 的html 转成你们的 rich-text 服务端工作量更大,比方说内链需要转成外链、css样式不支持引用只支持附着在标签后面? 等等。 可能只能让服务端转化为网页了。

      2018-12-13
      1
      回复
    • 韬々
      韬々
      2018-12-13

      很多时候,很多功能都存在各种限制的,所以小程序本身也并不适合用来开发所有应用。老哥加油。

      2018-12-13
      1
      回复
    • 彭雪松
      彭雪松
      2018-12-13

      这种事需要一个本地文件数据库来搞

      2018-12-13
      回复
    查看更多(1)
  • 是柿子啊
    是柿子啊
    2018-12-12

    webView 不能加载本地html=>渲染这个页面?


    2018-12-12
    赞同 1
    回复 1
    • 鸿 昊
      鸿 昊
      2018-12-12

      谢谢大哥回复,不过大哥你说的是啥意思,没看明白,目前我的问题是想知道小程序webView能否加载本地的html文件。

      (我目前的做法是src设为以"wxfile://"开头的本地路径,这个本地路径经过 FileSystemManager.access() 校验确实存在

      2018-12-12
      回复
  • 来一间
    来一间
    2018-12-14

    必须使用webview吧!我也想本地加载html

    2018-12-14
    赞同 1
    回复
  • 89
    89
    2018-12-14

    真机调试web-view,你的html需要时线上的,而且还是https的,如果不是要把https的那个验证关掉

    2018-12-14
    赞同
    回复
  • 🇻 🇰 🇮 🇳 🇬ʷᵃⁿᵍ
    🇻 🇰 🇮 🇳 🇬ʷᵃⁿᵍ
    2018-12-14

    不清楚小程序 webView 是否支持 iframe;支持的话,可以载入一个包含 iframe 的网页,然后在 iframe 里尝试看通过wxfile://  或 file:// 是否能加载

    2018-12-14
    赞同
    回复 2
    • aholy
      aholy
      2018-12-14

      可以?

      2018-12-14
      回复
    • 🇻 🇰 🇮 🇳 🇬ʷᵃⁿᵍ
      🇻 🇰 🇮 🇳 🇬ʷᵃⁿᵍ
      2018-12-14回复aholy

      没试过,所以写的是尝试下

      2018-12-14
      回复
  • Yolanda
    Yolanda
    2018-12-14

    可以的,要把https域名添加到后台的web-view(业务域名)

    2018-12-14
    赞同
    回复
  • 明赫维德
    明赫维德
    2018-12-14

     很好,很好。。是个好问题。我来帮你顶。。

    2018-12-14
    赞同
    回复
  • 骄阳
    骄阳
    2018-12-13

    不行,webview的初衷是加载白名单业务域名的内容。


    2018-12-13
    赞同
    回复
  • William
    William
    2018-12-13

    可以啊  本地调试的时候  勾选不校验合法域名就好了

    2018-12-13
    赞同
    回复 1
    • 鸿 昊
      鸿 昊
      2018-12-13

      已经勾选了,报的错和域名没有关系。

      2018-12-13
      回复

正在加载...