微信APP 分享API
IOS 开发手册:
https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Share_and_Favorites/iOS.html
Android 开发手册:
https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Share_and_Favorites/Android.html
H5+ API 分享: https://www.html5plus.org/doc/zh_cn/share.html
https://nativesupport.dcloud.net.cn/AppDocs/usemodule/androidModuleConfig/share
生成海报相关API
生成海报:
path/get 参数 (例如: 模版类型、内容参数(可以直接传参或者关键参数通过接口查询)、身份验证参数)
由无头浏览器(puppeteer框架,需Node.js 服务运行)设置窗口宽高后,满屏截屏,生成png 再转为转为webp (webp 命令行参数或者WebAssembly);
说明:
1.不使用客户端渲染的原因: Canvas 无法使用UI指定的特定字体文件;web app 压缩图片的代价比较大(既要保证清晰度又要保证数据不至于过大)
2.避免服务端重复渲染生成图片数据, 参数按照一定规则生成hash;
3.客户端下载图片文件后,可以存储在本地,再次使用先生成图片名称标识id, 验证本地文件是否存在,如果存在再验证hash 是否正确;
4. 服务端和客户端使用同一套规则,生成图片id 及hash;
5. 客户端 接口参数、图片id、hash 在本地保存一份映射关系;
6. 必要的情况下,需对图片进行压缩;
例如, H5动态渲染生成海报的模版为 :poster/create/${tempate_id},填充参数后为: /poster/axf_fsfsfs043?width=1200&height=720&pid=2456&key=fsfjsk434jkjkfsf, 则参数按照key字母排序后为 height=720&pid=2456&templateId=axf_fsfsfs043&width=1200, 生成参数hash,此hash 作为最为最终生成海报图片文件名称的一部分,例如poster_flfklaklfdkalakflfalfdkalfad.png
微信小程序对webp的支持情况:
image 组件: https://developers.weixin.qq.com/miniprogram/dev/component/image.html (基础库2.9.0)
cover-image 组件: https://developers.weixin.qq.com/miniprogram/dev/component/cover-image.html
2.13.0 更新 API iOS 支持保存 gif & webp 到相册
微信开放社区相关问题:
https://developers.weixin.qq.com/community/develop/doc/00046c051489e8e05fabdd06f5bc00?highLine=webp
下载文件:
微信小程序:
下载网络图片 https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#20
获取本地图片数据(base64):
通过localId: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#21
通过路径: https://developers.weixin.qq.com/miniprogram/dev/api/file/FileSystemManager.saveFile.html
h5+ API: https://www.html5plus.org/doc/zh_cn/downloader.html
uni-app:
uni.downloadFile(): https://uniapp.dcloud.io/api/request/network-file?id=downloadfile
uni.saveFile(): https://uniapp.dcloud.io/api/file/file?id=savefile
uni.getSavedFile(): https://uniapp.dcloud.io/api/file/file?id=getsavedfileinfo
注意事项: 1.小程序端需配置域名白名单;2.H5端可能是跨域的;
读取本地文件内容
h5+API: https://ask.dcloud.net.cn/question/118641 ( PlusIoDirectoryEntry.createReader() )
微信小程序(base64):
FileSystemManager.readFile() https://developers.weixin.qq.com/miniprogram/dev/api/file/FileSystemManager.readFile.html
通过localId: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html#21
uni-app:
计算文件摘要:
微信小程序:
h5+ API: https://www.html5plus.org/doc/zh_cn/io.html#plus.io.getFileInfo
uni-app: https://uniapp.dcloud.io/api/file/file?id=getfileinfo
注意事项:
1.imageData内容大小不超过10MB。IOS 仅支持图片二进制数据; Android 同时支持图片二进制数据和本地路径;
没有帐号? 立即注册