pod 'WechatKit'
ติดตั้งคาร์เธจ
github "starboychina/WechatKit"
ตั้งค่ารูปแบบ URL
ใน Xcode เลือกการตั้งค่าโครงการของคุณ เลือกคอลัมน์ "เป้าหมาย" และเพิ่ม "รูปแบบ URL" ลงใน "ประเภท URL" ในแถบแท็บ "ข้อมูล" สำหรับ ID แอปพลิเคชันที่คุณลงทะเบียนบนแพลตฟอร์มแบบเปิด WeChat
หลังจาก IOS9 คุณต้องเพิ่ม weixin ลงใน whitelist (ดังภาพ)
หรือเปิด info.plist ในโหมดซอร์สโค้ดและเพิ่มเนื้อหาต่อไปนี้
< key >LSApplicationQueriesSchemes</ key >
< array >
< string >wechat</ string >
< string >weixin</ string >
</ array >
วิธี handleOpenURL และ openURL ของ AppDelegate:
เพิ่มการนำเข้า WechatKit ใน AppDelegate.swift
/// iOS 9 以后将弃用 请用下面的方法 #20
/// -> NS_DEPRECATED_IOS(4_2, 9_0, "Please use application:openURL:options:") __TVOS_PROHIBITED;
func application ( _ application : UIApplication , open url : URL , sourceApplication : String ? , annotation : Any ) -> Bool {
return WechatManager . shared . handleOpenURL ( url )
// 如需要使用其他第三方可以 使用 || 连接 其他第三方库的handleOpenURL
// return WechatManager.shared.handleOpenURL(url) || TencentOAuth.HandleOpenURL(url) || WeiboSDK.handleOpenURL(url, delegate: SinaWeiboManager.shared) ......
}
/// iOS 9.0 以后请使用这个方法
/// Please use this (application:openURL:options:)
func application ( _ app : UIApplication , open url : URL , options : [ UIApplicationOpenURLOptionsKey : Any ] = [ : ] ) -> Bool {
return WechatManager . shared . handleOpenURL ( url )
// 如需要使用其他第三方可以 使用 || 连接 其他第三方库的handleOpenURL
// return WechatManager.shared.handleOpenURL(url) || TencentOAuth.HandleOpenURL(url) || WeiboSDK.handleOpenURL(url, delegate: SinaWeiboManager.shared) ......
}
WechatManager . appid = "微信开放平台,注册的应用程序id "
WechatManager . universalLink = "微信开放平台,注册的应用程序所对应的 Universal Links "
WechatManager . appSecret = "微信开放平台,注册的应用程序Secret "
WechatManager . shared . isInstalled ( )
เข้าสู่ระบบโดยใช้ WeChat
ตามค่าเริ่มต้น openid และ access_token จะถูกจดจำ เมื่อโทเค็นยังคงใช้งานได้ การเรียก checkAuth จะไม่เปิดไคลเอนต์ WeChat และใช้โทเค็นและเซิร์ฟเวอร์ WeChat โดยตรงเพื่อรับข้อมูลการตรวจสอบสิทธิ์
WechatManager . shared . checkAuth { result in
switch result {
case . failure ( let errCode ) : //登录失败
print ( errCode )
case . success ( let value ) : //登录成功 value为([String: String]) 从微信返回的openid access_token 以及 refresh_token
print ( value ) //当前是在子线程,如需回到主线程调用 DispatchQueue.main.async { print(value) }
}
}
WechatManager . shared . getUserInfo { result in
switch result {
case . failure ( let errCode ) : //获取失败
print ( errCode )
case . success ( let value ) : //获取成功 value为([String: String]) 微信用户基本信息
print ( value ) //当前是在子线程,如需回到主线程调用 DispatchQueue.main.async { print(value) }
}
}
ออกจากระบบ
เนื่องจาก openid และ access_token จะถูกจดจำโดยค่าเริ่มต้น คุณจึงต้องออกจากระบบหากต้องการเปลี่ยนผู้ใช้
WechatManager . shared . logout ( )
WechatManager . shared . shareDelegate = self
/**
分享
- parameter scence: 请求发送场景
- parameter image: 消息缩略图
- parameter title: 标题
- parameter description: 描述内容
- parameter url: 地址
- parameter extInfo: app分享信息(点击分享内容返回程序时,会传给WechatManagerShareDelegate.showMessage(message: String)
*/
WechatManager . shared . share ( scence : WXScene , image : UIImage ? , title : String , description : String , url : String ? = default , extInfo : String ? = default )
แชร์Delegation
//app分享后 点击分享返回时调用
func showMessage ( message : String )