溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iOS如何實現(xiàn)微信分享功能

發(fā)布時間:2021-07-07 12:45:10 來源:億速云 閱讀:282 作者:小新 欄目:移動開發(fā)

這篇文章主要為大家展示了“iOS如何實現(xiàn)微信分享功能”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學習一下“iOS如何實現(xiàn)微信分享功能”這篇文章吧。

1.首先下載微信SDK:微信SDK下載地址(更多關(guān)于微信SDK信息文檔請訪問官方網(wǎng)站:微信開放平臺)

2.導入微信SDK

將下載下來的SDKExport文件夾導入到工程,其中包含3個核心文件libWeChatSDK.a WXApi.h WXApiObject.h(強烈建議大家看看read-me文件)

iOS如何實現(xiàn)微信分享功能

3.在工程Build Phases -> Link Binary With Libraries 鏈接以下動態(tài)庫和框架文件

  • SystemConfiguration.framework

  • libz.dylib

  • libsqlite3.0.dylib

  • CoreTelephony.framework

iOS如何實現(xiàn)微信分享功能

4.使用SDK注冊你的APP

建議在AppDelegate此方法中注冊,導入import "WXApi.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
 [WXApi registerApp:@"wx1234567890"];//此為申請下來的key一般以wx開頭
 return YES;
}

5.創(chuàng)建發(fā)送體并向微信發(fā)送分享信息

1)首先我們來看看發(fā)送對象的類

iOS如何實現(xiàn)微信分享功能

通過該類得知,只能發(fā)送文本信息和多媒體信息兩者選一,多媒體信息可分為鏈接類,視頻類,音樂類,在此我以鏈接類為例,實例化此發(fā)送對象

2)實例化發(fā)送對象

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 = @"微信的平臺化發(fā)展方向是否真的會讓這個原本簡潔的產(chǎn)品變得臃腫?在國際化發(fā)展方向上,微信面臨的問題真的是文化差異壁壘嗎?騰訊高級副總裁、微信產(chǎn)品負責人張小龍給出了自己的回復。";
- (IBAction)shareBtn:(UIButton *)sender {
//創(chuàng)建發(fā)送對象實例
SendMessageToWXReq *sendReq = [[SendMessageToWXReq alloc] init];
sendReq.bText = NO;//不使用文本信息
sendReq.scene = 1;//0 = 好友列表 1 = 朋友圈 2 = 收藏
//創(chuàng)建分享內(nèi)容對象
WXMediaMessage *urlMessage = [WXMediaMessage message];
urlMessage.title = kLinkTitle;//分享標題
urlMessage.description = kLinkDescription;//分享描述
[urlMessage setThumbImage:[UIImage imageNamed:@"testImg"]];//分享圖片,使用SDK的setThumbImage方法可壓縮圖片大小
//創(chuàng)建多媒體對象
WXWebpageObject *webObj = [WXWebpageObject object];
webObj.webpageUrl = kLinkURL;//分享鏈接
//完成發(fā)送對象實例
urlMessage.mediaObject = webObj;
sendReq.message = urlMessage;
//發(fā)送分享信息
[WXApi sendReq:sendReq];
}

6.接下來就可以測試一下是否和微信接通了 以下是幾個常見的問題

1)如果編譯不通過顯示以下錯誤信息

iOS如何實現(xiàn)微信分享功能

解決辦法:添加libc++.tbd

iOS如何實現(xiàn)微信分享功能

2)如果無法跳轉(zhuǎn)至微信

iOS如何實現(xiàn)微信分享功能

根據(jù)提示信息顯示可能有兩種情況

1 iOS跳轉(zhuǎn)到其他APP使用的是URL Scheme,在iOS9新特性中加入了URL Scheme白名單功能,需要把要跳轉(zhuǎn)的APP的URL Scheme加入到當前工程的跳轉(zhuǎn)白名單中,具體操作請看URL Scheme 白名單

2 當前機器中沒有安裝微信

可以使用WXApi.h中的isWxAppInstalled方法來判斷當前機器是否安裝了微信,從而做出相應操作

iOS如何實現(xiàn)微信分享功能

7.如果沒有其他問題點擊分享按鈕后就會提示打開微信并進行分享操作 如圖

iOS如何實現(xiàn)微信分享功能

當分享完成后會回到APP 調(diào)用最開始注冊的"wx1234567890"為URL Scheme,因此也應該把此key添加到當前工程的URL Scheme(否則無法跳轉(zhuǎn)回到原APP)

iOS如何實現(xiàn)微信分享功能

8.分享完成后的回調(diào)操作

1)實現(xiàn)代理

iOS如何實現(xiàn)微信分享功能

2)從微信端打開第三方APP會調(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ā)送時相對于的返回類型,這里為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:@"確認" otherButtonTitles:nil, nil];
[alertview show];
}

3)到這里我們就可以看到微信回調(diào)的信息了

iOS如何實現(xiàn)微信分享功能

9.最后可以根據(jù)返回的errCode值來做相應的處理

iOS如何實現(xiàn)微信分享功能

以上是“iOS如何實現(xiàn)微信分享功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

ios
AI