小程序使用webview嵌入H5,附件链接无法打开问题

在一次做项目时,排查小程序中附件链接打不开问题,但另一个小程序同样的代码有的可以打开,有的打不开;排查了好久,后来后台说有的打开是因为没有做站点区分限制,不能打开是因为做了站点校验,因为需要用的cookie,但是小程序无法拿到H5的cookie信息,所以采取了利用唯一标识来判断。同时也总结了下注意事项:

小程序使用webview嵌入H5,想要打开附件链接时,要注意的问题

1:在H5页面使用小程序的API方法wx.redirectTo跳转到小程序中

2:因为H5可能会被嵌入到多个地方,为了区分在小程序中嵌入的H5地址后面要加参数miniprogram=1进行识别;使用wx.downloadFile和wx.OpenDocument方法下载和预览附件

3:在使用wx.OpenDocument方法时需要注意最好传入fileType参数,不然可能无法识别附件类型

4:在小程序管理平台需要配置downloadFIle域名,不然无法下载

5:小程序和webview中无法直接共享数据,如果必须要做识别用,可以和后台约定好唯一标识放在参数url后面,这样也可以进行识别
①webview如何使用小程序中的cookie:
wx.request会返回header,取到Set-Cookie这个字段,然后使用encodeURIComponent编码一下,通过url传给webview,在webview中通过document.cookie赋值即可
②小程序无法控制webview中cookie,两者是隔离的

6:为什么小程序与web-view与不能共享cookie

小程序的wx.request()是通过jsCore调用系统原生api发起的请求,即便header里带有set-cookie,也不会在web-view对应的’浏览器’中设置cookie,而是由原生应用来处理这个header中的set-cookie。

但是,小程序中的web-view和微信中直接打开的h5,因为用的是同一个浏览器内核,所以,它们的cookie、storage是可以共享的。

你可能感兴趣的:(微信相关,小程序,微信小程序)