iOS单独集成QQ分享功能

news/2024/7/5 2:17:59

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

 

(1)首先,把TencentOpenAPI.framework、TencentOpenApi_IOS_Bundle.bundle导入工程中。

(ps,我在搜索资料时,看到有人说TencentOpenAPI.framework要放在工程根目录,我在Xcode6下试了一下,结果是不放根目录也行,同时Xcode6下,导入framework就好,其它操作都自动了,官方sdk文档好像好久没更新了,我又想吐槽?不要阻止我!what's up?)

(2)添加SDK依赖的系统库文件。

“Security.framework”、“libiconv.dylib”、“SystemConfiguration.framework”、“CoreGraphics.Framework”、“libsqlite3.dylib”、“CoreTelephony.framework”、“libstdc++.dylib”、“libz.dylib”。

(3)在AppDelegate.h中 导入 头文件

#import <TencentOpenAPI/TencentOAuth.h>

4)在AppDelegate.m中向腾讯注册。(ps:只是集成分享功能,所以不用授权)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

[[TencentOAuth alloc] initWithAppId:QQKey andDelegate:nil]; //注册

【要特别注意以下3点:

1、上面代码中QQkey为APP ID,而不是APP KEY,并且与URL schemes不相同。

2、URL type 里的 URL schemes  = tencent + appid。(因为微信、微博的两个值是相同的,所以要注意一下。)

 

100

appid是1104292447

3、这里delegate为空,因为没有授权,所以不用代理。

(5)重写AppDelegate 的handleOpenURL和openURL方法

- (BOOL)application:(UIApplication*)application openURL:(NSURL *)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation{

return[TencentOAuth HandleOpenURL:url];

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{

return[TencentOAuth HandleOpenURL:url];

}

(ps:不用实现TencentSessionDelegate代理方法,手机QQ里分享时,会等到分享成功后,才会跳回原应用,所以不用监听发送情况)

(6)设置Bundle display name属性值。

如果是Xcode 6.0创建工程时,默认可能没有单独设置Bundle display name属性值。但是因为SDK需要用到Bundle display name的值,所以务必请检查确保这个属性存在,如果没有请添加上。如下图所示:

 

100

Bundle display name 为桂林理工大学

(ps:注意的是,这个名字会用在2个地方:1、应用显示的名字,2、分享到QQ界面时显示的“来自”小尾巴(到空间时,小尾巴是你注册腾讯appid时写的应用名字)

(7)在实现分享的ViewCotroller里加入头文件

#import  <TencentOpenAPI/QQApi.h>

#import <TencentOpenAPI/QQApiInterface.h>

(8)实现分享内容的代码(以分享图片为例)

//用于分享图片内容的对象

QQApiImageObject *imgObj = [QQApiImageObject objectWithData:imgData

previewImageData:previewImage

title:self.newsModel.title

description:@"由 桂林理工大学-校园通 转码"];

SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:imgObj];

//将内容分享到qq

QQApiSendResultCode sent = [QQApiInterface sendReq:req];

其它内容,大家还是磨磨官方文档,或者用集成化的sdk吧,同时希望腾讯的iOS开发者不要在打酱油了~.~


 

文/iHTCboy(简书作者)
原文链接:http://www.jianshu.com/p/388a1f1c990e
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

转载于:https://my.oschina.net/5951008876/blog/752585


http://lihuaxi.xjx100.cn/news/283891.html

相关文章

如何用python实现邮箱发送信息

这篇文章主要为大家详细介绍了python实现邮箱发送信息&#xff0c;文中示例代码介绍的非常详细&#xff0c;具有一定的参考价值&#xff0c;感兴趣的小伙伴们可以参考一下 本文实例为大家分享了python实现邮箱发送信息的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下…

清晰易懂的Focal Loss原理解释

来源&#xff1a;https://www.cnblogs.com/king-lps/p/9497836.html编辑&#xff1a;石头1. 总述Focal loss主要是为了解决one-stage目标检测中正负样本比例严重失衡的问题。该损失函数降低了大量简单负样本在训练中所占的权重&#xff0c;也可理解为一种困难样本挖掘。2. 损失…

pytest接口测试之fixture传参数request

本文主要介绍了pytest接口测试之fixture传参数request的使用&#xff0c;文中通过示例代码介绍的非常详细&#xff0c;具有一定的参考价值&#xff0c;感兴趣的小伙伴们可以参考一下 前言 有的测试用例&#xff0c;需要依赖于某些特定的case才可以执行&#xff0c;比如登录获取…

【MySQL】MySQL的事务

事务 目录事务1.1 为什么使用事务&#xff1f;1.2 事务的概念1.3 使用2.事务的基本特性2.1 脏读问题&#xff1a;2.2 不可重复读&#xff1a;2.3 幻读问题&#xff1a;2.4 MySQL中事务的隔离级别1.1 为什么使用事务&#xff1f; 准备测试表&#xff1a; drop table if exists…

html5日期转long

正确&#xff1a;日期&#xff0c;时间均是实时的 var inDate $("#inDate").val().trim(); if(inDate ! "") {inDate inDate.split(-);var d new Date();d.setFullYear(inDate[0]);d.setMonth(inDate[1] 1);d.setDate(inDate[2]);inDate d.getTime();…

深度解析:特斯拉「最强」自动驾驶芯片?

作者 | 唐杉来源 | StarryHeavenAbove在近日结束的Tesla Autonomy活动中&#xff0c;Tesla非常“大方”的介绍了自己的Full Self-Driving (FSD) Computer从系统到芯片的很多细节。从芯片来看&#xff0c;其“透明度”超过了除Google第一代TPU之外所有的AI相关芯片。实际上&…

超全面的Linux基础知识的梳理

我们是谁&#xff1f;我们为什么要学习Linux&#xff1f;我们想达到什么样的目标&#xff1f;作为一名LINUX运维小白&#xff0c;每日每夜面对着这些 linux生产环境&#xff0c;如何胜任&#xff1f;在今天这篇文章中&#xff0c;我们将分享一些Linux基础性的东西。这篇文章只是…

一个妹子的美团面试经历,历经 4 轮 2 小时,成功拿到 Offer

点击上方蓝色字体&#xff0c;选择“标星公众号”优质文章&#xff0c;第一时间送达来源&#xff1a;只爱羽毛球的程序媛blog.csdn.net/csuliyajin2012/article/details/49430659美团&#xff0c;我是在拉勾网上投的简历&#xff0c;之前也投过一次&#xff0c;简历都没通过删选…