昨天接到一个小需求,要求把原来的分享到朋友圈更改为分享小程序,需求如下:
连接入文档都提供了,那小意思啊!按着微信官方文档,几分钟就写好了!
实现代码如下:
运行结果:
此时的心情:
然后就马上校对各个参数:原始id,图像大小,path编码......这么简单的东西怎么可能出错?而且同样的参数在Android上顺溜的一试就成。
接入BAT的SDK比较坑的地方就是有时候发现问题没有官方的技术指导。然后各种搜索,几乎都说是原始id不对。
没办法,只能一一去调整各个参数看看哪里影响到。
结果,仅因为path中的参数有appid这么个玩意!!!
我能说什么呢?!让小程序端把path改改,appid改为app_id,过!!
没事用什么appid啊,苹果是你微信大爷,微信你是我大爷!!
最终代码:(本身集成的是友盟分享,有对微信的方法做了一层封装,所以也更改了调用友盟的方法实现)
- (void)shareToWXMiniProgram {
NSString *path = [NSString stringWithFormat:@"pages/qrcode/qrcode-connect?ssid=%@&bssid=%@&password=%@&app_id=%@", self.shareWiFi.SSID, self.shareWiFi.BSSID, self.shareWiFi.pwd, kAppID];
NSString *shareUrl = [WFKShareHelper generateWiFiShareUrl:self.shareWiFi.SSID password:self.shareWiFi.pwd];
NSString *title = [NSString stringWithFormat:@"邀请你连“%@”,密码为“%@”", self.shareWiFi.SSID, self.shareWiFi.pwd];
//创建分享消息对象
UMSocialMessageObject *messageObject = [UMSocialMessageObject messageObject];
UMShareMiniProgramObject *umMiniObject = [UMShareMiniProgramObject shareObjectWithTitle:title descr:title thumImage:nil];
umMiniObject.webpageUrl = shareUrl;//兼容低版本的网页链接
umMiniObject.userName = @"xxxxxxx";//小程序的原始id
umMiniObject.miniProgramType = UShareWXMiniProgramTypeRelease;
umMiniObject.path = path; //小程序的页面路径
umMiniObject.hdImageData = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"share_miniprogram@2x" ofType:@"jpg"]];//小程序的节点高清大图, 小于128k
//分享消息对象设置分享内容对象
messageObject.shareObject = umMiniObject;
[[UMSocialManager defaultManager] shareToPlatform:UMSocialPlatformType_WechatSession messageObject:messageObject currentViewController:self completion:nil];
}
附上接入文档:
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317332&token=&lang=zh_CN