ShareSDK自定义微信WXEntryActivity
在安卓端,如果想接收微信小程序回传到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) {
//示例1
if (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标签中添加如下代码:
<activity
android: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了,不信你试试