在安卓端,如果想接收微信小程序回传到APP的值,是需要在WXEntryActivity中获取的。但是ShareSDK已经定义过一个WXEntryActivity了,怎么办呢?往下看

一、按照微信官方配置,添加WXEntryActivity

在您项目包名中创建wxapi包,然后创建WXEntryActivity,WXEntryActivity的内容如下:

  1. /**
  2. * 微信客户端回调activity示例
  3. */
  4. public class WXEntryActivity extends WechatHandlerActivity {
  5. /**
  6. * 处理微信发出的向第三方应用请求app message
  7. * <p>
  8. * 在微信客户端中的聊天页面有“添加工具”,可以将本应用的图标添加到其中
  9. * 此后点击图标,下面的代码会被执行。Demo仅仅只是打开自己而已,但你可
  10. * 做点其他的事情,包括根本不打开任何页面
  11. */
  12. public void onGetMessageFromWXReq(WXMediaMessage msg) {
  13. if (msg != null) {
  14. Intent iLaunchMyself = getPackageManager().getLaunchIntentForPackage(getPackageName());
  15. startActivity(iLaunchMyself);
  16. }
  17. }
  18. /**
  19. * 处理微信向第三方应用发起的消息
  20. * <p>
  21. * 此处用来接收从微信发送过来的消息,比方说本demo在wechatpage里面分享
  22. * 应用时可以不分享应用文件,而分享一段应用的自定义信息。接受方的微信
  23. * 客户端会通过这个方法,将这个信息发送回接收方手机上的本demo中,当作
  24. * 回调。
  25. * <p>
  26. * 本Demo只是将信息展示出来,但你可做点其他的事情,而不仅仅只是Toast
  27. */
  28. public void onShowMessageFromWXReq(WXMediaMessage msg) {
  29. //示例1
  30. if (msg != null && msg.mediaObject != null && (msg.mediaObject instanceof WXAppExtendObject)) {
  31. WXAppExtendObject obj = (WXAppExtendObject) msg.mediaObject;
  32. Toast.makeText(this, obj.extInfo, Toast.LENGTH_SHORT).show();
  33. Log.e("QQQ", " onShowMessageFromWXReq " + obj.extInfo);
  34. }
  35. //示例2
  36. //从H5打开APP之后,携带的数据
  37. WXAppExtendObject obj = (WXAppExtendObject) msg.mediaObject;
  38. StringBuffer stringBuffer = new StringBuffer();
  39. stringBuffer.append("description: ");
  40. stringBuffer.append(msg.description);
  41. stringBuffer.append("\n");
  42. stringBuffer.append("extInfo: ");
  43. stringBuffer.append(obj.extInfo);
  44. stringBuffer.append("\n");
  45. stringBuffer.append("filePath: ");
  46. stringBuffer.append(obj.filePath);
  47. Log.e("ShareSDK", " showmsg_title " + msg.title);
  48. Log.e("ShareSDK", " showmsg_message " + msg.toString());
  49. Log.e("ShareSDK", " showmsg_thumb_data " + msg.thumbData);
  50. }
  51. }

注意这个activity继承了WechatHandlerActivity

二、配置AndroidManifest.xml

在AndroidManifest.xml的application标签中添加如下代码:

  1. <activity
  2. android:name=".wxapi.WXEntryActivity"
  3. android:configChanges="keyboardHidden|orientation|screenSize"
  4. android:exported="true"
  5. android:launchMode="singleTask"
  6. android:screenOrientation="portrait"
  7. android:theme="@android:style/Theme.Translucent.NoTitleBar" />

三、完结

OK了,不信你试试