可参考:微信JS-SDK说明文档 >
此时可能出现白名单错误(忘截图了),需要在微信公众号中设置错误中的IP
注意:access_token和ticket都需要缓存
4. 获取签名 signature
将以上内容以键值对形式拼接,类似如下
本地引入sha1算法(需网上查找)
将上述拼接的字符串以参数的形式传递到sha1中得到 signature
signature = sha1(拼接完的字符串)
验证 signature 是否正确 >
将appId,nonceStr,timestamp和signature返回给前端
官网上是这样描述的:
这时候调用 updateAppMessageShareData , updateTimelineShareData 的时候就可以生效了,具体原理不清楚。。
注意:imgUrl配置有严格的要求
尺寸120 x 120,大小不超过10K,不支持GIF格式。必须采用https协议(最好写完整url),不支持base64。由于我使用的是vue,在webpack打包时图片小于10k的是会自动打包成base64导致无法正常显示图片,因此在webpack.base.config.js中修改默认配置
由于在网页中直接查看pdf的路径是无法在微信中查看(安卓)和分享(ios),因此使用pdf插件进行优化 --- pdf.js 。其原理是绘制成canvas,最终在真机上放大时可能出现模糊的问题。
创建之后控制台会报错出现跨域问题,因为pdf.js不支持跨域访问。此时可以将错误跨域信息在上一步你引入的文件中查找,然后将其判断语句注释掉即可解决这个问题。最后会发现pdf出现在这个容器中(忘截图了),也实现了微信中预览和分享的功能。
最近修改公司vue项目中使用pdf.js来实现在线预览上传的各类文件.由于使用pdf.js在预览时是直接在标签内将src属性赋值为要请求的地址.这就导致一个问题,会直接请求服务器的文件路径地址,而这个服务器文件路径就会暴露出来。处于安全性考虑在预览请求时不再返回地址,改为通过调用普通接口,而是统一返回流(word,pdf)或者base64(jpg,png...)。.前端再进行解析并实现在线预览.
此时遇到第一个问题:
这个请求是在插件中进行的无法携带项目中封装的各类请求头信息(token..等)。 翻看pdf.js源码及网上总结.发现一个底层方法
该方法可传一个对象作为参数,对象内可以添加url(所请求的接口),headers(请求头信息)等.... . 有了这个方法就好处理了.
最后在将该方法当做变量赋值给pdf的src.大功告成.
最后再补充一些 : @loaded="docLoaded" @page-loaded ="pageLoaded" 这两个方法为加载预览文件时的loading事件,
最后引一波示例,