Swift微信分享功能開發

社交化分享時目前移動應用的標準配置,ShareSDK也提供了一攬子的解決方案,但考慮到項目只需要分享到微信和朋友圈即可,因此還是考慮通過微信接口進行開發。相關步驟和說明如下:

1、登錄微信開放平臺https://open.weixin.qq.com,注冊帳號,新建應用,提交審核。審核通過(一般一個工作日內)后,會獲得應用的AppID和AppSecret。

2、閱讀官方文檔,學習微信分享的主要步驟。

3、下載 libWeChatSDK.a,WXApi.h,WXApiObject.h 三個SDK文件并導入工程,并在項目的Bridging-Header中引入。

4、按照官方文檔邏輯,編寫分享代碼。

let message = WXMediaMessage()

message.title = "標題"

message.description = "描述"

message.setThumbImage(UIImage(named: "applogo.png"))

let webpageObject = WXWebpageObject()

webpageObject.webpageUrl = fullUrl

message.mediaObject = webpageObject

let req = SendMessageToWXReq()

req.bText = false

req.message = message

//WXSceneSession? = 0,? ? ? ? /**< 聊天界面? ? */

//WXSceneTimeline = 1,? ? ? ? /**< 朋友圈? ? ? */

//WXSceneFavorite = 2,

req.scene = clickIndex - 1

WXApi.sendReq(req)

5、按照上述代碼基本可以實現微信和朋友圈的分享,但如何捕捉分享之后的回調呢?官方文檔里沒有找到明確的答案。結合http://www.aichengxu.com/view/36179中的答案和文檔中對WXApiDelegate的說明可以找到答案,按如下操作即可實現回調。

class AppDelegate: UIResponder, UIApplicationDelegate,UIAlertViewDelegate,WXApiDelegate {

var window: UIWindow?

//監控微信的啟動與分享

func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {

let isSuc = WXApi.handleOpenURL(url, delegate: self)

print("isSuc=\(isSuc)")

if isSuc == false{

BYCGUtil().showAlertView("微信啟動失敗")

}

return isSuc

}

func onResp(resp: BaseResp!) {

/*

WXSuccess? ? ? ? ? = 0,? ? /**< 成功? ? */

WXErrCodeCommon? ? = -1,? /**< 普通錯誤類型? ? */

WXErrCodeUserCancel = -2,? /**< 用戶點擊取消并返回? ? */

WXErrCodeSentFail? = -3,? /**< 發送失敗? ? */

WXErrCodeAuthDeny? = -4,? /**< 授權失敗? ? */

WXErrCodeUnsupport? = -5,? /**< 微信不支持? ? */

*/

print("errCode=\(resp.errCode)")

if resp.errCode == WXSuccess.rawValue{

Util().showAlertView("分享成功")

}else if resp.errCode == WXErrCodeUserCancel.rawValue{

Util().showAlertView("分享取消")

}else if resp.errCode == WXErrCodeSentFail.rawValue{

Util().showAlertView("發送失敗")

}else if resp.errCode == WXErrCodeAuthDeny.rawValue{

Util().showAlertView("授權失敗")

}else if resp.errCode == WXErrCodeUnsupport.rawValue{

Util().showAlertView("微信不支持")

}else{

Util().showAlertView("分享失敗")

}

}

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

// Override point for customization after application launch

//微信分享

WXApi.registerApp("appid")

return true

}


這樣即可實現一個完整的微信分享流程。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容