1、小程序縮略圖的圖片比例是:5:4,圖片在分享過程中會被微信進行二次壓縮,如果出現圖片模糊的情況,可以修改成一張稍微高質量的圖片,但是大小要小於128K
2、需要小程序的原始ID: gh_xxxxxxxx 一定是gh開頭的
3、需要path:pack-xxxx/xxxxx/xxxxxx 類似這種
4、使用微信分享方法,我這裏用的是原生微信分享,沒有使用第三方
示例代碼如下:
static func shareToWechatSession(_ title: String, image: UIImage, url: String, path: String, completionHandler: @escaping ((Bool?, Error?) -> Void)) {
if WXApi.isWXAppInstalled() {
completionShareBlock = completionHandler
let object = WXMiniProgramObject()
object.webpageUrl = url;
object.userName = "gh_xxxxx"
object.path = path;
object.withShareTicket = true
let message = WXMediaMessage()
message.title = title
message.thumbData = image.jpegData(compressionQuality: 1)
message.mediaObject = object
let req = SendMessageToWXReq()
req.bText = false
req.message = message
req.scene = Int32(WXSceneSession.rawValue)
WXApi.send(req, completion: nil)
} else {
return
}
}
註釋:
分享成功的回調如下:
可是使用上面的 WXApi.send(req, completion: nil) completion ,也可以使用下面的代理
extension WeChatManager: WXApiDelegate {
func onResp(_ resp: BaseResp) {
if resp is SendMessageToWXResp {
if resp.errCode == 0 {
if let completionHandler = WeChatManager.completionShareBlock {
completionHandler(true, nil)
}
} else {
if let completionHandler = WeChatManager.completionShareBlock {
completionHandler(false, nil)
}
}
}
if let authResp = resp as? SendAuthResp {
authResponseDelegate?.didReceive(auth: authResp)
}
}
}
分享小程序暫不支持微信朋友圈,所以,你可以微信朋友圈暫時使用分享鏈接的形式,也可以通過圖片合成一張帶有分享內容和小程序二維碼的圖片
分享到朋友圈:
static func shareToWechatTimeline(_ title: String, image: UIImage, url: String, completionHandler: @escaping ((Bool?, Error?) -> Void)) {
if WXApi.isWXAppInstalled() {
completionShareBlock = completionHandler
let webpageObject = WXAppExtendObject()
webpageObject.url = url
let message = WXMediaMessage()
message.title = title
message.setThumbImage(image)
message.mediaObject = webpageObject
let req = SendMessageToWXReq()
req.bText = false
req.message = message
req.scene = Int32(WXSceneTimeline.rawValue)
WXApi.send(req, completion: nil)
} else {
return
}
}