pod 'WechatKit'
تثبيت قرطاج
github "starboychina/WechatKit"
تعيين مخطط URL
في Xcode، حدد إعدادات مشروعك، وحدد عمود "الأهداف"، وأضف "مخطط URL" إلى "نوع عنوان URL" في شريط علامة التبويب "المعلومات" لمعرف التطبيق الذي قمت بتسجيله على منصة WeChat المفتوحة.
بعد IOS9، تحتاج إلى إضافة weixin إلى القائمة البيضاء (كما هو موضح في الصورة)
أو افتح 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 )
مشاركةالتفويض
//app分享后 点击分享返回时调用
func showMessage ( message : String )