首页 > Personal > Unity使用SharedSDK有关微信开放平台回调的问题
2017
04-30

Unity使用SharedSDK有关微信开放平台回调的问题

最近在做一个项目Unity棋牌项目,项目里用到了SharedSDK来做登陆和一些分享相关,只要是使用微信的。
在使用SharedSDk中发现,其他平台都是好的,可以登陆分享,之后也会收到回调,唯独微信不可以,登陆没有授权页面显示,分享后收不到回调,完全不可用。
重SharedSDK官网下载了官方Demo也是不行,研究了一下午,可能初步找到了原因,但是还没有验证成功,因为微信开放平台的应用申请需要时间。现在写下来以备后用。

首先,也是最重要的一点,要使用微信第三方登陆,需要在微信开放平台注册,并完成企业认证。只有通过了企业认证才能在开放平台中申请移动应用。申请时IOS平台需要填写应用的Bundle ID。Android平台比较麻烦,需要填写包名即Unity里AndroidManifest.xml中的package名,并且需要应用签名,这个可以使用开放平台提供的签名生成工具安装在手机上,然后把自己的应用也安装好,通过包名来查询,得到一串字符字符串就是应用签名了。现在还没办法验证是否修改就是因为目前申请的应用还没有审核通过,只能等了。

另外,AndroidManifest.xml中的package名需要和Unity里面adroid设置的Package Name一致,并且AndroidManifest.xml中

Unity Demo下载Android_Java_Demo,自己生成相应jar包。
首先,如果没有Android开发环境可以先下载adt-bundle,运行eclipse文件夹中的eclipse,打开刚才现在的Android_Java_Demo工程。
启动eclipse时,可能会因为Java SDK安装目录的问题无法启动,需要在eclipse.ini的openFile后面添加
-vm
C:/Program Files/Java/jdk1.8.0_112/bin/javaw.exe 指定自己的Java SDK安装目录。
修改WXEntryActivity.java所在目录到包名正确的地址包名.wxapi.WXEntryActivity,然后通过eclipse将WXEntryActivity导出为DemoCallback.jar,具体导出方法可以在网上去查。

微信分享时,如果设置的ShareContent.SetImageUrl地址无法访问的话,游戏中会出现文字提示“分享操作正在后台进行”之后回调会收到错误消息,所以设置时一定要设置正确地址。

这样应该就可以了,之后测试成功,我在来确认。
今天开放平台的移动应用申请通过了,事实证明确实是这个问题,授权登陆页面可以显示了,回调也能收到了,至此微信登陆算是正常了。
另外上面提到的xml中的.wxapi.WXEntryActivity前面也不需要加完整路径,这样也是没有问题的。

另外,在解决这个问题的时候,微信的官网文档发现,微信登陆不管是开放平台还是公众号,每个用户都会有一个对应该不同应用的不同openid,这个id是不唯一的,要想在不同应用中获取用户的唯一id来辨识用户如,应用和公众号联动,首选同一开放品台帐号下面的所有应用,用户的unionid字段都是相同的,如果需要公众号也有相同的unionid,需要把公众号和开放平台帐号绑定,这样通过unionid就可以唯一表示用户了。

最后编辑:
作者:wy182000
这个作者貌似有点懒,什么都没有留下。