日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微博分享iOS实现

發布時間:2023/12/29 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微博分享iOS实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

SDK版本3.3.2 測試時間20220329

1.首先要有APPKey,這個不歸我管,沒有要自行申請

2.代碼實現:

授權代碼:假設類名是 WeiBoShare

+(void)WeiBoAuth { #ifdef DEBUG[WeiboSDK enableDebugMode:YES]; #endifif ([WeiboSDK isWeiboAppInstalled]) {NSLog(@"weibo installed");}else{NSLog(@"weibo not installed");}[WeiboSDK banGetIdfa:NO]; //不要獲取IDFA[WeiboSDK registerApp:WeiBoAPPID universalLink:WeiBoUlink]; //UniversalLink跟申請微信的配置差不多,微博這邊壓根就沒啥指導,可以去微信開放平臺參考一下。#ifdef DEBUG //下面這行是測試是否已經連接成功。在打開app的時候可以看到連接圖標,調用微博的。調通后不需要這句。[WeiboSDK checkUniversalLink:^(WBULCheckStep step, NSError * _Nullable error) {NSLog(@"111step=%ld error=%@",step,error);}]; #endif}

在AppDelegate.m里面的didFinishLaunchingWithOptions函數調用:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {//----[WeiBoShare WeiBoAuth];//----- }

需要實現的反饋函數(可以放AppDelegate.m,也可以指定Delegate):

- (void)didReceiveWeiboRequest:(WBBaseRequest *)request {NSLog(@"return:%@",request); }- (void)didReceiveWeiboResponse:(WBBaseResponse *)response { //從微博返回的一些信息,對于分享沒多大意義 }

//回調需要考慮2種情況,例子簡單,我都丟AppDeletege.m,注意 #import "WeiBoSDK.h"//設置Universal Links系統回調 - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler{return [WeiboSDK handleOpenUniversalLink:userActivity delegate:(id)self]; }- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {return [WeiboSDK handleOpenURL:url delegate:self]; }

分享網頁:

-(void)shareWeiBo:(NSDictionary *)info{if (![WeiboSDK isWeiboAppInstalled]) {return;}if (![WeiboSDK isCanShareInWeiboAPP]) {return;}WBMessageObject *message = [WBMessageObject message];NSString *title = info[@"title"];NSString *desc = info[@"desc"];NSString *link = info[@"link"];//聽說WBWebpageObject沒法用,到時候只能用這個text接口了,3.3.2版本還能用WBWebpageObject,只不過樣式很挫。message.text = @""; //這里不填寫,貌似跳不到微博編輯界面;NSString *thumb_str = info[@"thumb"];NSURL *thumb_url = [NSURL URLWithString:thumb_str];NSData *orgData = nil;if (thumb_url) {orgData = [NSData dataWithContentsOfURL:thumb_url];}WBWebpageObject *pageObj = [[WBWebpageObject alloc] init];pageObj.objectID = [NSString stringWithFormat:@"%lld",(long long)[NSDate date].timeIntervalSince1970*1000];pageObj.scheme = link; //說是回調的網頁,但是不知道啥用pageObj.title = title;pageObj.description = desc;pageObj.webpageUrl = link; //這里很坑,說是棄用了,但是如果不傳遞參數就會報錯。NSData *resData = orgData; //32k限制,這里沒寫縮放圖片的代碼pageObj.thumbnailData = resData;// 圖片分享//WBImageObject *imageObj = [WBImageObject object];//imageObj.imageData = resData;//message.imageObject = imageObj;message.mediaObject = pageObj;//分享多媒體,數據對象類為WBBaseMediaObject (已經棄用,不必實現這段代碼)WBSendMessageToWeiboRequest *request =[WBSendMessageToWeiboRequest requestWithMessage:message];[WeiboSDK sendRequest:request completion:^(BOOL success) {NSLog(@"success=%@",success?@"true":@"false");}];}

見過微信SDK恨的牙癢癢,但是調通后用的還可以,但是微博分享SDK做的很差,這個啥功能都砍了,啥都要💰,另外讓我對微博觀感差的就是隨意關聯了個惡心的號到我手機號,還是被封殺了的,弄的我調試還得換新號,吐血三升。。。

最后關于info.plist設置:

這個版本不需要太多,只需要下面兩個key上填點就搞定,NSAppTransportSecurity已經不需要配置。

<key>LSApplicationQueriesSchemes</key><array><string>sinaweibo</string><string>sinaweibohd</string><string>sinaweibosso</string><string>sinaweibohdsso</string><string>weibosdk</string><string>weibosdk2.5</string><string>weibosdk3.3</string></array><key>CFBundleURLTypes</key><array><dict><key>CFBundleTypeRole</key><string>Editor</string><key>CFBundleURLName</key><string>weibo</string><key>CFBundleURLSchemes</key><array><string>wb{微博APPID}</string></array></dict></array>

20220330更新:

WBWebpageObject目測太挫了,還是用文字+圖片的形式更帥氣。

//..... 前省略。。。message.text = [NSString stringWithFormat:@"%@\n%@\n%@",title,desc,link];WBImageObject *imageObj = [WBImageObject object];imageObj.imageData = orgData;imageObj.delegate = (id)self;message.imageObject = imageObj; //.....

總結

以上是生活随笔為你收集整理的微博分享iOS实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。