iOS 微信分享-官方集成

之前陆陆续续做过一些三方分享,都是一键集成包含各大社交软件的三方,例如shareSDk和友盟,这次应公司要求,需要单个集成,下面是集成步骤,老规矩,有问题请留言或者评论?

1.帐号申请

https://open.weixin.qq.com/

首先登录微信开放平台,注册一个帐号

2.提交APP审核

为什么必须提交app审核呢?

审核2天就可以审核通过,通过之后为下图,为应用申请了appid和appsecret

3.下载最新的SDK

--这里--去官网下载最新sdk

4.导入SDK

在工程Build Phases -> Link Binary With Libraries 链接以下动态库和框架文件

 

5.设置白名单(点击查看白名单详细信息

6.关闭bitcode

 

 

7.设置URL 

8.使用SDK注册你的APP

AppDelegate此方法中注册,导入import "WXApi.h"

 

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

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
return [WXApi handleOpenURL:url delegate:self]; } -(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{ return [WXApi handleOpenURL:url delegate:self]; } #pragma mark WXApiDelegate 微信分享的相关回调 // onReq是微信终端向第三方程序发起请求,要求第三方程序响应。第三方程序响应完后必须调用sendRsp返回。在调用sendRsp返回时,会切回到微信终端程序界面 - (void)onReq:(BaseReq *)req { NSLog(@"onReq是微信终端向第三方程序发起请求,要求第三方程序响应。第三方程序响应完后必须调用sendRsp返回。在调用sendRsp返回时,会切回到微信终端程序界面"); } // 如果第三方程序向微信发送了sendReq的请求,那么onResp会被回调。sendReq请求调用后,会切到微信终端程序界面 - (void)onResp:(BaseResp *)resp { NSLog(@"回调处理"); // 处理 分享请求 回调 if ([resp isKindOfClass:[SendMessageToWXResp class]]) { switch (resp.errCode) { case WXSuccess: { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"分享成功!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; } break; default: { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"分享失败!" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; } break; } } }
 
   

8.分享核心代码

 

- (IBAction)shareBtn:(UIButton *)sender {

//创建发送对象实例
SendMessageToWXReq *sendReq = [[SendMessageToWXReq alloc] init];
sendReq.bText = NO;//不使用文本信息
sendReq.scene = 0;
// 发送到聊天界面  0
// 发送到朋友圈    1
// 发送到微信收藏  2
//创建分享内容对象 WXMediaMessage *urlMessage = [WXMediaMessage message]; urlMessage.title = @"";//分享标题 urlMessage.description = @"";//分享描述 [urlMessage setThumbImage:[UIImage imageNamed:@"Img"]];//分享图片,使用SDK的setThumbImage方法可压缩图片大小 //创建多媒体对象 WXWebpageObject *webObj = [WXWebpageObject object]; webObj.webpageUrl = kLinkURL;//分享链接 //完成发送对象实例 urlMessage.mediaObject = webObj; sendReq.message = urlMessage; //发送分享信息 [WXApi sendReq:sendReq]; }

 

至此,整体的微信分享就完成了,但是无论是官方demo还是网上方法,大多都有错点和遗漏,以下是可能遇到的错误以及解决方法:

1。官方Demo编译报错。

这个错误算是比较坑,大家都是冲着你们的功能来的,结果所有人下的代码都跑不起来,坑爹啊,吐槽结束,解决办法是按照上图添加依赖库(点此下载无错版的demo

2。编译不通过(下图)


解决办法:添加libc++.tbd

3。无法跳转至微信

根据提示信息显示可能有两种情况 

1 iOS跳转到其他APP使用的是URL Scheme,在iOS9新特性中加入了URL Scheme白名单功能,需要把要跳转的APP的URL Scheme加入到当前工程的跳转白名单中,具体操作请看上面写过了

2 当前机器中没有安装微信
可以使用WXApi.h中的isWxAppInstalled方法来判断当前机器是否安装了微信,从而做出相应操作

4。Terminating app due to uncaught exception 'NSInvalidArgumentException'reason: '-[__NSArrayM enqueue:]: unrecognized selector sent to instance 0x1f0a9ae0'

解决方法:

-------1.你的工程文件中选择Build Setting,在"Other Linker Flags"中加入"-ObjC",记住-ObjC的C要大写。

-------2.如果工程报错"_GCControllerDidDisconnectNotification"

项目->TARGETS->iOS->Build Phases->Link Binary With Libraries

增加库:
GameController.framework

-------3.如果还报错xx.dylib的问题的话,则找到刚刚添加的GameController.framework,右侧Required改为Opitional

转载于:https://www.cnblogs.com/OC888/p/6802585.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS微信支付宝封装是指在iOS平台上对微信支付和支付宝支付功能进行封装和集成,方便开发者在自己的应用中集成使用这两种支付方式。 首先,对于微信支付的封装,开发者可以使用微信官方提供的iOS SDK进行集成。该SDK包含了微信支付的各种功能和接口,如创建支付订单、发起支付请求、支付结果回调等。开发者只需按照微信提供的文档进行相应的调用和配置,即可实现在自己的应用中使用微信支付功能。 其次,对于支付宝支付的封装,同样可以使用支付宝官方提供的iOS SDK进行集成。该SDK包含了支付宝支付的相关功能和接口,如创建支付订单、发起支付请求、支付结果回调等。开发者只需按照支付宝提供的文档进行相应的调用和配置,即可实现在自己的应用中使用支付宝支付功能。 通过对iOS微信支付宝的封装,开发者可以在自己的应用中方便地集成和使用微信支付和支付宝支付功能,提供给用户更多的支付方式选择,方便用户进行支付操作。同时,封装的过程也可以提高开发效率和代码的复用性,减少开发者的开发工作量。 需要注意的是,为了保证支付过程的安全性和可靠性,开发者在集成和使用支付功能时应按照相关的规范和指引进行操作,确保支付过程的顺利完成和支付信息的安全保密。同时,开发者还需要了解和掌握各种支付方式的使用规则和注意事项,方便根据实际需求进行相应的配置和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值