在安卓端,如果想接收微信小程序回传到APP的值,是需要在WXEntryActivity中获取的。但是ShareSDK已经定义过一个WXEntryActivity了,怎么办呢?往下看
一、按照微信官方配置,添加WXEntryActivity
在您项目包名中创建wxapi包,然后创建WXEntryActivity,WXEntryActivity的内容如下:
/*** 微信客户端回调activity示例*/public class WXEntryActivity extends WechatHandlerActivity {/*** 处理微信发出的向第三方应用请求app message* <p>* 在微信客户端中的聊天页面有“添加工具”,可以将本应用的图标添加到其中* 此后点击图标,下面的代码会被执行。Demo仅仅只是打开自己而已,但你可* 做点其他的事情,包括根本不打开任何页面*/public void onGetMessageFromWXReq(WXMediaMessage msg) {if (msg != null) {Intent iLaunchMyself = getPackageManager().getLaunchIntentForPackage(getPackageName());startActivity(iLaunchMyself);}}/*** 处理微信向第三方应用发起的消息* <p>* 此处用来接收从微信发送过来的消息,比方说本demo在wechatpage里面分享* 应用时可以不分享应用文件,而分享一段应用的自定义信息。接受方的微信* 客户端会通过这个方法,将这个信息发送回接收方手机上的本demo中,当作* 回调。* <p>* 本Demo只是将信息展示出来,但你可做点其他的事情,而不仅仅只是Toast*/public void onShowMessageFromWXReq(WXMediaMessage msg) {//示例1if (msg != null && msg.mediaObject != null && (msg.mediaObject instanceof WXAppExtendObject)) {WXAppExtendObject obj = (WXAppExtendObject) msg.mediaObject;Toast.makeText(this, obj.extInfo, Toast.LENGTH_SHORT).show();Log.e("QQQ", " onShowMessageFromWXReq " + obj.extInfo);}//示例2//从H5打开APP之后,携带的数据WXAppExtendObject obj = (WXAppExtendObject) msg.mediaObject;StringBuffer stringBuffer = new StringBuffer();stringBuffer.append("description: ");stringBuffer.append(msg.description);stringBuffer.append("\n");stringBuffer.append("extInfo: ");stringBuffer.append(obj.extInfo);stringBuffer.append("\n");stringBuffer.append("filePath: ");stringBuffer.append(obj.filePath);Log.e("ShareSDK", " showmsg_title " + msg.title);Log.e("ShareSDK", " showmsg_message " + msg.toString());Log.e("ShareSDK", " showmsg_thumb_data " + msg.thumbData);}}
注意这个activity继承了WechatHandlerActivity
二、配置AndroidManifest.xml
在AndroidManifest.xml的application标签中添加如下代码:
<activityandroid:name=".wxapi.WXEntryActivity"android:configChanges="keyboardHidden|orientation|screenSize"android:exported="true"android:launchMode="singleTask"android:screenOrientation="portrait"android:theme="@android:style/Theme.Translucent.NoTitleBar" />
三、完结
OK了,不信你试试
