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中添加如下权限

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

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

<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">
</activity>

在你的项目包中创建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 这两个类。

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

    ...
    @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();
}

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,589评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,615评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,933评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,976评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,999评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,775评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,474评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,359评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,854评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,007评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,146评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,826评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,484评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,029评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,153评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,420评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,107评论 2 356

推荐阅读更多精彩内容