IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 微博分享iOS实现 -> 正文阅读

[移动开发]微博分享iOS实现

SDK版本3.3.2 测试时间20220329

1.首先要有APPKey,这个不归我管,没有要自行申请

2.代码实现:

授权代码:假设类名是 WeiBoShare


+(void)WeiBoAuth
{
#ifdef DEBUG
    [WeiboSDK enableDebugMode:YES];
#endif
  
  if ([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;
//.....

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-04-01 00:13:15  更:2022-04-01 00:15:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 19:42:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码