学而时习之,不亦悦乎,大家好,我是张杰。
最近新APP需要用到微信分享和QQ分享,虽然好多年年做过,这次实现的过程中还是有些知识点需要更新,下面来一起走一遍吧
一、注册平台
1、微信开放平台
https://open.weixin.qq.com
这个比较简单,注册申请 参考我原来写的 https://www.jianshu.com/p/0e39052f461e
2、QQ就有绕了,有腾讯开放平台:https://open.tencent.com 和qq互联https://connect.qq.com
要先去腾讯开放平台注册账号,然后登录qq互联就可以用了,要是先注册qq互联开发者认证基本通过不了,还是得到腾讯开放平台去处理。
账号注册好,开发者认证通过后就可以开始创建移动应用了,创建移动应用的的时候需要填写的资料要先准备好:
创建:填写名称、说明、100*100的app icon准备好,填写完了就可以看到app ID了,记得要记下来后面要用到
提交:
URL Scheme 填写 QQ+创建的移动应用ID换16进制 (要是创建的时候没记下来就随便填一个等审核通过了在改,我提交的想返回看网页直接提交了,不让修改了)
bundle id app的
Universal Links 如果配置了就填配置的,没有配置的话先填一个
6191715408064_.pic.jpg
至此账号配置就告一段落了。
二、项目配置
1、先加白名单
WeChat259ecc3a102f5fdea58f8aae34036388.jpg
2、配置
WeChat90a30a493288043b4453d7a6e0e03310.jpg
3、这个在创建bundle id的要勾选的,也可以后面勾选
WeChatdc37c932df10fc97dc43c1830bb64625.jpg
4、sdk倒入,这个不多讲了,文档里有
微信看:https://www.jianshu.com/p/0e39052f461e
QQ看:https://wiki.connect.qq.com/sdk下载
https://wiki.connect.qq.com/ios_sdk环境搭建
5、代码配置
在AppDelegate加头文件
#import <TencentOpenAPI/TencentOAuth.h>
#import <TencentOpenAPI/QQApiInterface.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[WXApi registerApp:@"111111111" universalLink:@"自己的"];
TencentOAuth * tencentOAuth = [[TencentOAuth alloc] initWithAppId:@"11111111" andUniversalLink:@"自己的" andDelegate:self];
}
代理有问题就自己加一下
6、使用
微信
// UIImage *image = [UIImage imageNamed:@"个人中心背景"];
// NSData * imageData = UIImageJPEGRepresentation(image, 0.7);
//
// WXImageObject *imageObject = [WXImageObject object];
// imageObject.imageData = imageData;
//
// WXMediaMessage *message = [WXMediaMessage message];
// NSString *filePath = [[NSBundle mainBundle] pathForResource:@"res5"
// ofType:@"jpg"];
// message.thumbData = [NSData dataWithContentsOfFile:filePath];
// message.mediaObject = imageObject;
//
// SendMessageToWXReq *req = [[SendMessageToWXReq alloc] init];
// req.bText = NO;
// req.message = message;
// req.scene = WXSceneSession;
//// [WXApi sendReq:req];
// [WXApi sendReq:req completion:^(BOOL success) {
//
// }];
UIImage *image = [UIImage imageNamed:@"个人中心背景"];
NSData * imageData = UIImageJPEGRepresentation(image, 0.7);
QQApiImageObject *aa = [QQApiImageObject objectWithData:imageData previewImageData:imageData title:@"" description:@""];
SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:aa];
QQApiSendResultCode sent = [QQApiInterface sendReq:req];
至此你可以拉起微信和qq分享图片了
*如果要分享的是海报给大家提供个思路,因为每个需求都不一样
1、做一个海报的view
2、将海报的view转成图片
swift代码
//分享界面转image
func interfaceToImage(_ view: UIView) -> UIImage? {
UIGraphicsBeginImageContextWithOptions(view.bounds.size, false, 0.0)
view.drawHierarchy(in: view.bounds, afterScreenUpdates: true)
let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
OC代码
- (UIImage *) interfaceToImage:(UIView *)view withSize:(CGSize)size
{
UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
3、分享出去的时候把这个图片转成data给微信或者qq就可以了
网友评论