QQ、微信分享总结

来源:互联网 发布:设置windows在文件夹 编辑:程序博客网 时间:2024/04/29 23:30

QQ分享

腾讯开放平台注册成为开发者

下载QQ分享的SDK ——> 将SDK导入项目 ——>添加SDK依赖的系统库  在Build Phasses ——> Link Binary With Libraries中点击 +就能添加系统库("Security.framework", “libiconv.tbd”,“SystemConfiguration.framework”,“CoreGraphics.Framework”、“libsqlite3.tbd”、“CoreTelephony.framework”、“libstdc++.tbd”、“libz.tbd” ) ——>之后选择Copy Bundle Resources一栏点击+图标添选择Add Other... 进入SDK 文件所在的目录,选择TencentOpenApi_IOS_Bundle.bundle ,点击回车或者直接点击Open。

//修改配置

在工程项目中的Build Settings一栏中找到Linking配置区,在“Other Linker Flags”配置项添加属性值“-fobjc-arc”。

//修改工程配置文件

在XCode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type”添加一条新的“URL scheme”,新的scheme = tencent + appid。


创建iOS应用——>得到APP ID ——>打开工程项目在AppDelegate.m文件中导入

#import <TencentOpenAPI/TencentOAuth.h>
#import <TencentOpenAPI/QQApiInterface.h>

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

             _tencentOAuth = [[TencentOAuth alloc] initWithAppId:QQAPP_ID andDelegate:self];

}

//重写AppDelegate的handleOpenURL和openURL方法

openURL:

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

return[TencentOAuth HandleOpenURL:url];

}

handleOpenURL:

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

return[TencentOAuth HandleOpenURL:url];

}

然后其他的方法我就不一一列举了。关键的就是这些,其他的关于怎么分享什么的其实就有很多朋友写了放在网上的,大家不会的可以直接百度呀,哈哈哈。

接下来就是微信分享咯

微信分享首先也是要到微信开放平台去下载微信的SDK——>接下来就是把微信的SDK导入项目工程 ——>添加SDK依赖的系统库——>怎么添加我就不重复了,具体需要的几个是“SystemConfiguration.framework”, “libz.tbd”, “libsqlite3.0.tbd”, “CoreTelephony.framework”。接下来就要开始工作了。

在AppDelegate中导入import "WXApi.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
 [WXApi registerApp:@"wx1234567890"];//此为申请下来的key一般以wx开头
 returnYES;
}

然后就可以做你的分享咯。

呀!差点忘记刚才遇到的一个问题,百度了一下,也把它记录下来,错误如下:

2017-10-25 09:52:13.897 DynamicSecret[1389:89930] -[__NSArrayM enqueue:]: unrecognized selector sent to instance 0x608000243330
2017-10-25 09:52:13.897 DynamicSecret[1389:89930] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM enqueue:]: unrecognized selector sent to instance 0x608000243330'
*** First throw call stack:
(
0   CoreFoundation                      0x000000010dc1734b __exceptionPreprocess + 171
1   libobjc.A.dylib                     0x000000010d31021e objc_exception_throw + 48
2   CoreFoundation                      0x000000010dc86f34 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
3   CoreFoundation                      0x000000010db9cc15 ___forwarding___ + 1013
4   CoreFoundation                      0x000000010db9c798 _CF_forwarding_prep_0 + 120
5   DynamicSecret                       0x000000010a8ea3c4 -[WXOMTASocket send:callback:] + 129
6   DynamicSecret                       0x000000010a8ea5bd -[WXOMTASocket sendEvent:callback:] + 295
7   DynamicSecret                       0x000000010a8cbb12 __reportOneEvent_block_invoke_3 + 252
8   DynamicSecret                       0x000000010a8cb792 __reportOneEvent_block_invoke + 1407
9   libdispatch.dylib                   0x000000010e803980 _dispatch_call_block_and_release + 12
10  libdispatch.dylib                   0x000000010e82d0cd _dispatch_client_callout + 8
11  libdispatch.dylib                   0x000000010e80ae6b _dispatch_queue_serial_drain + 236
12  libdispatch.dylib                   0x000000010e80bb9f _dispatch_queue_invoke + 1073
13  libdispatch.dylib                   0x000000010e80c07f _dispatch_queue_override_invoke + 683
14  libdispatch.dylib                   0x000000010e80e3b7 _dispatch_root_queue_drain + 720
15  libdispatch.dylib                   0x000000010e80e08b _dispatch_worker_thread3 + 123
16  libsystem_pthread.dylib             0x000000010ebdc746 _pthread_wqthread + 1299
17  libsystem_pthread.dylib             0x000000010ebdc221 start_wqthread + 13
)

libc++abi.dylib: terminating with uncaught exception of type NSException


解决方法呢就是在你的工程文件中选择Build Setting,在"Other Linker Flags"中加入"-Objc -all_load"这样就大功告成了


注:本文为原创,转载请注明