iOS 從app中分享出小程序

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
        }
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章