iOS 微信分享功能簡(jiǎn)單實(shí)現(xiàn)
PS:此文以簡(jiǎn)單實(shí)現(xiàn)功能為主,不足之前還望指點(diǎn),大神勿噴.
在此之前如何申請(qǐng)微信認(rèn)證的Key就不說了,公司一般會(huì)有人搞(自己申請(qǐng)一個(gè)也非常的簡(jiǎn)單)
1.首先下載微信SDK:微信SDK下載地址(更多關(guān)于微信SDK信息文檔請(qǐng)?jiān)L問官方網(wǎng)站:微信開放平臺(tái))
2.導(dǎo)入微信SDK
將下載下來的SDKExport文件夾導(dǎo)入到工程,其中包含3個(gè)核心文件libWeChatSDK.a WXApi.h WXApiObject.h(強(qiáng)烈建議大家看看read-me文件)
3.在工程Build Phases -> Link Binary With Libraries 鏈接以下動(dòng)態(tài)庫和框架文件
- SystemConfiguration.framework
- libz.dylib
- libsqlite3.0.dylib
- CoreTelephony.framework
4.使用SDK注冊(cè)你的APP
建議在AppDelegate此方法中注冊(cè),導(dǎo)入import "WXApi.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [WXApi registerApp:@"wx1234567890"];//此為申請(qǐng)下來的key一般以wx開頭 return YES; }
5.創(chuàng)建發(fā)送體并向微信發(fā)送分享信息
1)首先我們來看看發(fā)送對(duì)象的類
通過該類得知,只能發(fā)送文本信息和多媒體信息兩者選一,多媒體信息可分為鏈接類,視頻類,音樂類,在此我以鏈接類為例,實(shí)例化此發(fā)送對(duì)象
2)實(shí)例化發(fā)送對(duì)象
static NSString *kLinkURL = @"http://tech.qq.com/zt2012/tmtdecode/252.htm"; static NSString *kLinkTagName = @"WECHAT_TAG_JUMP_SHOWRANK"; static NSString *kLinkTitle = @"專訪張小龍:產(chǎn)品之上的世界觀"; static NSString *kLinkDescription = @"微信的平臺(tái)化發(fā)展方向是否真的會(huì)讓這個(gè)原本簡(jiǎn)潔的產(chǎn)品變得臃腫?在國(guó)際化發(fā)展方向上,微信面臨的問題真的是文化差異壁壘嗎?騰訊高級(jí)副總裁、微信產(chǎn)品負(fù)責(zé)人張小龍給出了自己的回復(fù)。";
- (IBAction)shareBtn:(UIButton *)sender { //創(chuàng)建發(fā)送對(duì)象實(shí)例 SendMessageToWXReq *sendReq = [[SendMessageToWXReq alloc] init]; sendReq.bText = NO;//不使用文本信息 sendReq.scene = 1;//0 = 好友列表 1 = 朋友圈 2 = 收藏 //創(chuàng)建分享內(nèi)容對(duì)象 WXMediaMessage *urlMessage = [WXMediaMessage message]; urlMessage.title = kLinkTitle;//分享標(biāo)題 urlMessage.description = kLinkDescription;//分享描述 [urlMessage setThumbImage:[UIImage imageNamed:@"testImg"]];//分享圖片,使用SDK的setThumbImage方法可壓縮圖片大小 //創(chuàng)建多媒體對(duì)象 WXWebpageObject *webObj = [WXWebpageObject object]; webObj.webpageUrl = kLinkURL;//分享鏈接 //完成發(fā)送對(duì)象實(shí)例 urlMessage.mediaObject = webObj; sendReq.message = urlMessage; //發(fā)送分享信息 [WXApi sendReq:sendReq]; }
6.接下來就可以測(cè)試一下是否和微信接通了 以下是幾個(gè)常見的問題
1)如果編譯不通過顯示以下錯(cuò)誤信息
解決辦法:添加libc++.tbd
2)如果無法跳轉(zhuǎn)至微信
根據(jù)提示信息顯示可能有兩種情況
1 iOS跳轉(zhuǎn)到其他APP使用的是URL Scheme,在iOS9新特性中加入了URL Scheme白名單功能,需要把要跳轉(zhuǎn)的APP的URL Scheme加入到當(dāng)前工程的跳轉(zhuǎn)白名單中,具體操作請(qǐng)看URL Scheme 白名單
2 當(dāng)前機(jī)器中沒有安裝微信
可以使用WXApi.h中的isWxAppInstalled方法來判斷當(dāng)前機(jī)器是否安裝了微信,從而做出相應(yīng)操作
7.如果沒有其他問題點(diǎn)擊分享按鈕后就會(huì)提示打開微信并進(jìn)行分享操作 如圖
當(dāng)分享完成后會(huì)回到APP 調(diào)用最開始注冊(cè)的"wx1234567890"為URL Scheme,因此也應(yīng)該把此key添加到當(dāng)前工程的URL Scheme(否則無法跳轉(zhuǎn)回到原APP)
8.分享完成后的回調(diào)操作
1)實(shí)現(xiàn)代理
2)從微信端打開第三方APP會(huì)調(diào)用此方法,此方法再調(diào)用代理的onResp方法
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [WXApi handleOpenURL:url delegate:self]; }
- (void)onResp:(BaseResp *)resp { //把返回的類型轉(zhuǎn)換成與發(fā)送時(shí)相對(duì)于的返回類型,這里為SendMessageToWXResp SendMessageToWXResp *sendResp = (SendMessageToWXResp *)resp; //使用UIAlertView 顯示回調(diào)信息 NSString *str = [NSString stringWithFormat:@"%d",sendResp.errCode]; UIAlertView *alertview = [[UIAlertView alloc] initWithTitle:@"回調(diào)信息" message:str delegate:self cancelButtonTitle:@"確認(rèn)" otherButtonTitles:nil, nil]; [alertview show]; }
3)到這里我們就可以看到微信回調(diào)的信息了
9.最后可以根據(jù)返回的errCode值來做相應(yīng)的處理
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
iOS 生成plist文件,在項(xiàng)目中代碼創(chuàng)建plist的實(shí)例
下面小編就為大家分享一篇iOS 生成plist文件,在項(xiàng)目中代碼創(chuàng)建plist的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-02-02IOS網(wǎng)絡(luò)請(qǐng)求之AFNetWorking 3.x 使用詳情
本篇文章主要介紹了IOS網(wǎng)絡(luò)請(qǐng)求之AFNetWorking 3.x 使用詳情,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02ios啟動(dòng)頁強(qiáng)制豎屏(進(jìn)入App后允許橫屏與豎屏)
最近工作遇到這樣一個(gè)需要,當(dāng)進(jìn)入啟動(dòng)頁需要強(qiáng)制豎屏,而進(jìn)入APP后就允許橫屏與豎屏,通過查找相關(guān)的資料找到了解決的方法,所以將實(shí)現(xiàn)的方法整理后分享出來,需要的朋友們可以參考借鑒,下面來一起看看吧。2017-03-03iOS用UITextField切換明文/密文顯示時(shí)末尾空白的問題解決
最近在工作中遇到一個(gè)問題,利用UITextField切換明文/密文顯示時(shí)發(fā)現(xiàn)字符串后面會(huì)出現(xiàn)一段空白,所以下面這篇文章主要給大家介紹了iOS用UITextField切換明文/密文顯示時(shí)末尾空白問題的解決方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-05-05IOS開發(fā)之JSON轉(zhuǎn)PLIST實(shí)例詳解
這篇文章主要介紹了IOS開發(fā)之JSON轉(zhuǎn)PLIST實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2016-11-11