iOS分享微信小程序的一个坑

昨天接到一个小需求,要求把原来的分享到朋友圈更改为分享小程序,需求如下:


iOS分享微信小程序的一个坑_第1张图片
需求说明

连接入文档都提供了,那小意思啊!按着微信官方文档,几分钟就写好了!


iOS分享微信小程序的一个坑_第2张图片
微信小程序分享官方示例

实现代码如下:
iOS分享微信小程序的一个坑_第3张图片
实现代码

运行结果:


iOS分享微信小程序的一个坑_第4张图片
运行结果

此时的心情:
iOS分享微信小程序的一个坑_第5张图片
WHAT?!

然后就马上校对各个参数:原始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

你可能感兴趣的:(iOS分享微信小程序的一个坑)