unity探索者之微信分享回调
版权声明:本文为原创文章,转载请声明http://www.cnblogs.com/unityExplorer/p/7574561.html
上一遍讲了微信分享的一些坑,然后就忘了回调这事儿了,今天补上,回调的东西比较简单,但是还是有一些注意事项,先上代码
1 public class WXEntryActivity extends Activity implements IWXAPIEventHandler { 2 private IWXAPI api; 3 private static final String appId = "appid"; 4 5 @Override 6 public void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 api = WXAPIFactory.createWXAPI(this, appId, false); 9 api.registerApp(appId); 10 api.handleIntent(getIntent(), this); 11 } 12 13 @Override 14 protected void onNewIntent(Intent intent) { 15 super.onNewIntent(intent); 16 setIntent(intent); 17 api.handleIntent(intent, this); 18 } 19 20 // 微信发送请求到第三方应用时,会回调到该方法 21 @Override 22 public void onReq(BaseReq req) { } 23 24 // 第三方应用发送到微信的请求处理后的响应结果,会回调到该方法 25 @Override 26 public void onResp(BaseResp resp) { 27 UnityPlayer.UnitySendMessage("ShareManager", "WechatCallBack", "" + resp.errCode); 28 finish(); 29 } 30 }
如果要正确的收到回调,必须要在你的包下面新建一个wxapi的文件夹,然后在wxapi文件夹下创建WXEntryActivity类,并声明IWXAPIEventHandler
特别注意的是,wxapi文件夹必须是包的第一级目录,比如你的包名是com.xxx.ccc,那WXEntryActivity类的package必须是com.xxx.ccc.wxapi
onResp函数就是发送微信请求处理后会自动回调的函数,所以我们在这里执行unity里的回调函数,后面加上finish(),不加就不会自动回到unity了
此外,AndroidManifest.xml文件中需要加上WXEntryActivity的activity标签
红线划掉的地方是微信开发平台里申请的应用appid
到这里,微信分享就基本完成了
由于环境不同关系,并非所有的博客内容都会上传完整的源码,大部分的源码,大家可以到我的github主页上的UGCFramework查找
传送门:https://github.com/wulonghao/UGCFramework