android 分享小程序到微信,Android 使用友盟分享微信小程序到微信

Android使用友盟分享微信小程序到微信

在友盟官网上看到了相关的API,但是总是无法正常调用,下面记录下自己的处理流程:

引入依赖

implementation 'com.umeng.umsdk:common:2.2.5'

implementation 'com.umeng.umsdk:share-core:7.0.2'

implementation 'com.umeng.umsdk:share-board:7.0.2'

//为支持微信分享的模块

implementation 'com.umeng.umsdk:share-wx:7.0.2'

添加所需权限,创建微信所需的Activity

请在AndroidManifest中添加如下权限

并在AndroidManifest中添加如下代码(需要提前创建好Activity):

android:configchanges="keyboardHidden|orientation|screenSize"

android:exported="true" android:launchmode="singleTask"

android:name=".wxapi.WXEntryActivity"

android:taskaffinity="net.sourceforge.simcpux"

android:theme="@android:style/Theme.Translucent.NoTitleBar">

在你的项目包中创建wxapi包,并创建WXEntryActivity.class

public class WXEntryActivity extends WXCallbackActivity implements IWXAPIEventHandler {

private IWXAPI wxapi= BaseApplication.getInstance().getWxApi();

@Override

protected void onNewIntent(Intent intent) {

super.onNewIntent(intent);

setIntent(intent);

wxapi.handleIntent(intent, this);

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

wxapi.handleIntent(getIntent(), this);

}

@Override

public void onReq(BaseReq baseReq) {

LogUtils.d(baseReq:+baseReq.openId);

}

@Override

public void onResp(BaseResp baseResp) {

if (baseResp.getType()==ConstantsAPI.COMMAND_SENDMESSAGE_TO_WX){

finish();

}else if(baseResp.getType()==ConstantsAPI.COMMAND_SENDAUTH){

LogUtils.d(返回授权+baseResp.errCode);

switch (baseResp.errCode) {

case BaseResp.ErrCode.ERR_OK:

LogUtils.d(返回Code:+((SendAuth.Resp) baseResp).code);

EventBus.getDefault().post(new EventMessage(CodeManager.BIND_PHONE,((SendAuth.Resp) baseResp).code));

break;

case BaseResp.ErrCode.ERR_USER_CANCEL:

case BaseResp.ErrCode.ERR_AUTH_DENIED:

case BaseResp.ErrCode.ERR_UNSUPPORT:

break;

}

finish();

}

}

}

由于我在项目中集成了其他微信相关的SDK,读者只用关注这个 WXEntryActivity需要继承 WXCallbackActivity 以及实现 IWXAPIEventHandler 这两个类。

在自定义的 BaseApplication 的 onCreate 方法中需要注册友盟

...

@Override

public void onCreate() {

super.onCreate();

initUmeng();

}

private void initUmeng() {

// 在此处调用基础组件包提供的初始化函数 相应信息可在应用管理 -> 应用信息 中找到 http://message.umeng.com/list/apps

// 参数一:当前上下文context;

// 参数二:应用申请的Appkey;

// 参数三:渠道名称;

// 参数四:设备类型,必须参数,传参数为UMConfigure.DEVICE_TYPE_PHONE则表示手机;传参数为UMConfigure.DEVICE_TYPE_BOX则表示盒子;默认为手机;

// 参数五:Push推送业务的secret 填充Umeng Message Secret对应信息(需替换)

UMConfigure.init(this, 应用在友盟申请的Appkey, Umeng, UMConfigure.DEVICE_TYPE_PHONE, 没有使用推送服务,传空字符串就行);

//开通微信分享 第一个值为app在微信注册时的AppID 第二个值是你们软件注册时的AppSecret

PlatformConfig.setWeixin(wx*************, *******AppSecret****);

}

注意!这里一定要添加开通微信分享的代码,否则点击分享按钮将没有任何反应!!! PlatformConfig.setWeixin("wx*************", "*******AppSecret****");

分享小程序到微信

我将分享逻辑放在弹窗点击事件里

private void showShareDialog(DistributionMyGoodsBean.ListBean listBean) {

//分享

ShareDialog shareDialog = new ShareDialog(mContext, false);

shareDialog.setOnButtonListener(new ShareDialog.OnButtonListener() {

@Override

public void onWeChatClick() {

ToastUtils.showShort(微信分享);

//兼容低版本的网页链接

UMMin umMin = new UMMin(你想要兼容的网页链接,需要带上http://);

// 小程序消息封面图片

umMin.setThumb(new UMImage(mContext, listBean.getImage()));

// 小程序消息title

umMin.setTitle(listBean.getTitle());

//小程序页面路径

umMin.setPath(/pages/小程序对应的页面链接);

//小程序原始id,在微信平台查询

umMin.setUserName(gh_***********);

//设置小程序版本

//预览版

Config.setMiniPreView();

//测试版

Config.setMiniTest();

new ShareAction((Activity) mContext)

.setPlatform(SHARE_MEDIA.WEIXIN)

.withMedia(umMin)

.setCallback(shareListener)

.share();

}

@Override

public void onCircleFriendsClick() {

//小程序目前无法分享小程序到朋友圈

}

});

shareDialog.show();

}

注意:在分享小程序之前是必须要设置小程序的版本的,不然点开微信链接会报错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值