iOS專案開發實戰——使用ShareSDK進行QQ和微信分享
ShareSDK是一款非常強大也非常方便的第三方分享API。在IOS平臺上使用ShareSDK可以方便的把你的內容分享到十幾個社交平臺上,這裡我們簡單介紹下如何分享到QQ和微信。
(1)申請QQ平臺和微信平臺的APP ID和APP KEY。詳見我的部落格《成為騰訊開發者——如何使用QQ開放平臺和微信開放平臺》。
(2)進入ShareSdk的官網 http://mob.com/#/index 。進行註冊,然後登陸。
(3)下載對應平臺的SDK。
。
(4)然後進入後臺,建立一個應用。如圖:
。
(5)應用建立完成後,進入後臺,可以看到有APP KEY和APP Secret。在後續的專案開發中將會用到。
。
(6)然後開始在Xcode建立一個應用,我以Swift為例,進行和OC的混合程式設計。我已經把ShareSDK上傳到百度網盤中,大家可以下載http://pan.baidu.com/s/1sjOLVnn。下載解壓後拖入到專案中即可。
(7)新增依賴庫。進入Build Phases-->Link Binary With Libraries進行新增。需要新增的依賴庫如下:
。
(8)然後需要建立一個橋接檔案。在橋接檔案中寫入如下程式碼:
#import <ShareSDK/ShareSDK.h>
#import "WXApi.h"
#import "WeiboSDK.h"
#import <TencentOpenAPI/QQApiInterface.h>
#import <TencentOpenAPI/TencentOAuth.h>
#import "WXApi.h"
#import <QZoneConnection/ISSQZoneApp.h>
(9)然後就可以寫程式碼了。在AppDelegate.swift中實現如下三個方法:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
//各平臺申請key的方法可參閱:http://bbs.mob.com/forum.php?mod=viewthread&tid=275&page=1&extra=#pid860
//1.初始化ShareSDK應用,字串"4a88b2fb067c"換成你申請的ShareSDK應用的Appkey,這個key來源於ShareSDK官網上申請獲得
ShareSDK.registerApp("輸入你在ShareSDK官網上申請應用的APP KEY")
/**---------------------------------------------------------**/
//2.初始化新浪微博
// ShareSDK.connectSinaWeiboWithAppKey("1916892007", appSecret: "0e5456c4c4380661c103acd38bc9a8f7", redirectUri: "http://www.nbdpc.gov.cn/", weiboSDKCls: WeiboSDK.classForCoder())
//上面的方法會又客戶端跳客戶端,沒客戶端條web.
//下面這方法,如果不想用新浪客戶端授權只用web的話就可以使用。
//[ShareSDK connectSinaWeiboWithAppKey:<#(NSString *)#> appSecret:<#(NSString *)#> redirectUri:<#(NSString *)#>]
/**---------------------------------------------------------**/
//初始化微信,微信開放平臺上註冊應用
ShareSDK.connectWeChatWithAppId("在微信平臺上申請的APP KEY",appSecret:"在微信平臺上申請的APP Secret",wechatCls:WXApi.classForCoder());
//如果在分享選單中想取消微信收藏,可以初始化微信及微信朋友圈,取代上面整體初始化的方法
//微信好友[ShareSDK connectWeChatSessionWithAppId:<#(NSString *)#> appSecret:<#(NSString *)#> wechatCls:<#(__unsafe_unretained Class)#>]
//微信朋友圈[ShareSDK connectWeChatTimelineWithAppId:<#(NSString *)#> appSecret:<#(NSString *)#> wechatCls:<#(__unsafe_unretained Class)#>]
/**---------------------------------------------------------**/
//初始化QQ,QQ空間,使用同樣的key,請在騰訊開放平臺上申請,注意匯入標頭檔案:
/**
已經在橋街檔案ShareSDK-Bridging-Header.h中匯入
#import <TencentOpenAPI/QQApiInterface.h>
#import <TencentOpenAPI/TencentOAuth.h>
**/
//連線QQ應用
ShareSDK.connectQQWithQZoneAppKey("在騰訊平臺上申請的APP ID", qqApiInterfaceCls: QQApiInterface.classForCoder(), tencentOAuthCls: TencentOAuth.classForCoder())
//連線QQ空間應用
ShareSDK.connectQZoneWithAppKey("在騰訊平臺上申請的APP ID", appSecret: "在騰訊平臺上申請的APP Secret", qqApiInterfaceCls: QQApiInterface.classForCoder(), tencentOAuthCls: TencentOAuth.classForCoder())
/**---------------------------------------------------------**/
return true
}
//新增兩個回撥方法,return的必須要ShareSDK的方法
func application(application: UIApplication, handleOpenURL url: NSURL) -> Bool {
return ShareSDK.handleOpenURL(url, wxDelegate: self)
}
func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject? ) -> Bool{
return ShareSDK.handleOpenURL(url, sourceApplication: sourceApplication, annotation: annotation, wxDelegate: self)
}
(10)然後新增一個按鈕的監聽事件。實現如下:
@IBAction func shareBarButtonItemPressed(sender: UIBarButtonItem) {
//定製分享資訊
var pic = NSBundle.mainBundle().pathForResource("appicon", ofType: "png")
var publishContent : ISSContent =
ShareSDK.content(這個是描述內容,
defaultContent:"預設內容",
image:ShareSDK.imageWithPath(pic),
title:這個是標題,
url:"這個是分享的連結",
description:"這是一條測試資訊",
mediaType:SSPublishContentMediaTypeNews)
ShareSDK.showShareActionSheet(nil, shareList: nil, content: publishContent, statusBarTips: false, authOptions: nil, shareOptions: nil) { (ShareType, state:SSResponseState, statusInfo :ISSPlatformShareInfo!, error:ICMErrorInfo!, end:Bool) -> Void in
if (state.value == SSResponseStateSuccess.value){
println("分享成功")
}else if (state.value == SSResponseStateFail.value){
println("分享失敗,錯誤碼:\(error.errorCode()),錯誤描述:\(error.errorDescription())")
}else if (state.value == SSResponseStateCancel.value){
println("分享取消")
}
}
}
(11)執行程式,點選按鈕,就可以實現分享。
。
總結下,在ShareSDK官網上有相應的Demo和文件可以下載,這樣可以更加方便快捷的進行開發。
github主頁:https://github.com/chenyufeng1991 。歡迎大家訪問!
相關文章
- iOS專案開發實戰——使用SDWebImage庫進行圖片請求iOSWeb
- iOS專案開發實戰——如何使用Autoresizing進行螢幕適配iOS
- iOS專案開發實戰——使用AFNetworking進行Http Get請求iOSHTTP
- iOS專案開發實戰——使用CALayer和定時器實現進度條iOS定時器
- iOS專案開發實戰——使用CoreLocation實現定位iOS
- iOS專案開發實戰——使用使用者首選項資料進行啟動提示iOS
- iOS專案開發實戰——使用UICollectionView實現瀑布流iOSUIView
- iOS專案開發實戰——如何進行延時操作iOS
- iOS專案開發實戰——UILabel與取色器的使用iOSUI
- iOS專案開發實戰——理解frame,bounds,centeriOS
- iOS專案開發實戰——檢視動畫效果iOS動畫
- iOS專案開發實戰——配置自定義動畫iOS動畫
- iOS專案開發實戰——plist陣列解析iOS陣列
- iOS專案開發實戰——使用定時器實現迴圈操作iOS定時器
- iOS專案開發實戰——使用程式碼實現頁面跳轉iOS
- 微信小程式開發—專案實戰之計算器開發微信小程式
- iOS專案開發實戰——使用CoreLocation獲取當前位置資訊iOS
- iOS專案開發實戰——網頁原始碼實現二進位制和HTML的轉換iOS網頁原始碼HTML
- iOS專案開發實戰——自定義圓形進度提示控制元件iOS控制元件
- tp5+ionic開發微信公眾號專案實戰專案教程
- iOS專案開發實戰——UIView的子檢視和父檢視iOSUIView
- iOS專案開發實戰——CoreLocation地理編碼和反地理編碼iOS
- iOS專案開發實戰——使用程式碼獲取螢幕寬高iOS
- iOS專案開發實戰——UIImageView的使用與圖片顯示模式iOSUIView模式
- iOS專案開發實戰——學會使用TableView列表控制元件(一)iOSView控制元件
- iOS專案開發實戰——學會使用TableView列表控制元件(二)iOSView控制元件
- 自定義QQ和微信分享卡片
- iOS專案開發實戰——實現檢視切換動畫iOS動畫
- iOS專案開發實戰——使用手勢識別判斷使用者操作iOS
- iOS專案開發實戰——使用CALayer實現圖片的淡入淡出效果iOS
- 進行佛家專案開發
- 微信小程式開發—專案實戰之聊天機器人微信小程式機器人
- iOS專案開發實戰——UIView的層級關係iOSUIView
- iOS專案開發實戰——獲取本機IP地址iOS
- flask 專案開發實戰Flask
- iOS專案開發實戰——使用同步請求獲取網頁原始碼iOS網頁原始碼
- AMP專案實戰分享
- 「Vue實戰」武裝你的專案 - 開發經驗分享Vue