MobTech ShareSDK Android端微信分享小程序

敲码者说
• 阅读 724
前言:首先要集成ShareSDK,集成步骤请查看这里

1.微信开发者后台的相关信息配置

集成完之后做小程序的分享,首先要申请完小程序到微信开放平台绑定到自己的应用,否则无法成功分享, 绑定的位置如下图:MobTech ShareSDK Android端微信分享小程序

绑定完之后点击查看如下图所示可以看到原始ID,这个后面分享会用到;

MobTech ShareSDK Android端微信分享小程序

分享小程序的页面路径可以直接复制
MobTech ShareSDK Android端微信分享小程序

2.分享微信小程序

ShareSDK分享小程序只是ShareSDK分享微信的一种类型,只要设置对类型和方法即可;

微信分享登录等,必须要保证微信开放平台-->管理中心-->移动应用-->你的应用(查看进入)-->开发信息,中配置的项目的包名和应用签名,与您的app的包名和签名一致,否则无法分享;

2.1OneKeyShare接口分享小程序说明
OneKeyShare的分享需要先确定分享类型,代码如下:

OnekeyShare oks = new OnekeyShare();
  oks.setTitle("标题测试");
  oks.setText("lalalla http://open.qq.com");
  oks.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");
  oks.setUrl("http://open.qq.com");
  oks.setShareContentCustomizeCallback(new ShareContentCustomizeCallback() {
      @Override
      public void onShare(Platform platform,
      cn.sharesdk.framework.Platform.ShareParams paramsToShare) {
          if(platform.getName().equals("Wechat")){
              paramsToShare.setShareType(Platform.SHARE_WXMINIPROGRAM);//分享小程序类型
              paramsToShare.setWxUserName("gh_52568203455c");//配置小程序原始ID,前面有截图说明
              paramsToShare.setWxPath("pages/index/index");//分享小程序页面的具体路径,前面截图从微信小程序开发工具中可以直接复制    }
      });    
  oks.setCallback(new PlatformActionListener() {
        @Override
        public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
                 Log.d("ShareSDK", "onComplete ---->  分享成功");
        }
        @Override
        public void onError(Platform platform, int i, Throwable throwable) {
                 Log.d("", "onError ---->  失败" + throwable.getStackTrace());
        }
        @Override
        public void onCancel(Platform platform, int i) {
                 Log.d("ShareSDK", "onCancel ---->  分享取消");
        }
      });
   oks.show(MobSDK.getContext());
  • 小程序需要在setShareContentCustomizeCallback方法中,判断固定小程序的分享类型"SHARE_WXMINIPROGRAM", 判断完类型我们来说下小程序的字段说明,setWxUserName,小程序的原始ID;setWxPath,这个方法中是传小程序分享后点击打开的小程序中的页面您的路径,这个可以到小程序开发工具中查看;
  • 其次是oks调用的setText、setImageUrl(图片可以用setImagePath分享本地图片等)、setUrl、setTitle、这四个方法也是必须要的,小程序分享,如果微信客户端不支持的话会默认分型链接的类型,所以这几个方法也是必须配置的;
  • 微信的AppId和AppSecret的配置这里就不多赘述,可以去官方的集成文档了解配置的位置;

2.2单独分享接口分享微信小程序

Platform sina2 = ShareSDK.getPlatform(Wechat.NAME);
                        ShareParams SP2 = new ShareParams();
                        SP2.setWxUserName("gh_52568203455c");  //小程序原始ID
                        SP2.setWxPath("pages/index/index");//分享小程序页面路径
                        SP2.setTitle("标题分享");
                        SP2.setText("http://www.mob.com");
                        SP2.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");
                        SP2.setUrl("http://www.baidu.com");
 Wechat.ShareParams spa = new Wechat.ShareParams();
                    spa.setTitle("标题分享");
                    spa.setText("分享参数");
                    spa.setUrl("http://www.baidu.com");
                    spa.setImageUrl("http://f1.sharesdk.cn/imgs/2014/02/26/owWpLZo_638x960.jpg");      
                    spa.setWxMiniProgramType(0);//分享小程序类型:0-正式,1-开发,2-体验
                    spa.setWxPath("pages/index/index");//分享小程序页面路径
                    spa.setWxUserName("gh_52568203455c");//小程序原始ID
                    spa.setShareType(Platform.SHARE_WXMINIPROGRAM);//分享小程序类型
                   // 设置分享事件回调(注:回调放在不能保证在主线程调用,不可以在里面直接处理UI操作)
                    weChat.setPlatformActionListener(new PlatformActionListener() {
                        @Override
                        public void onComplete(Platform platform, int i, HashMap<String, Object> hashMap) {
                            platform.getName();
                            Log.d("ShareSDK", "onComplete ---->  分享成功");
                        }
                        @Override
                        public void onError(Platform platform, int i, Throwable throwable) {
                            Log.d("ShareSDK", "onError ---->  分享失败" + throwable.getStackTrace().toString());
                        }
                        @Override
                        public void onCancel(Platform platform, int i) {
                            Log.d("ShareSDK", "onCancel ---->  分享取消");
                        }
                    });// 执行图文分享
                    weChat.share(spa);

单独分享小程序代码如上,与原始分享没有差别只是多了两个参数,设置下分享类型即可,具体小程序原始ID,如何绑定可以看第一中的说明;

2.3打开微信小程序
先阅读2.1 、2.2步骤分享微信小程序,然后在第一步的基础上修改一个类型,setShareType,如下所示:

setShareType(Platform.OPEN_WXMINIPROGRAM);//打开小程序

其他与第一步保持不变即可,点击按钮,就可以直接打开小程序了;

3.微信小程序打开APP,并获取参数

3.1参数设置
首先需要仔细阅读下小程序的文档查看这里,在小程序中设置对应的按钮和参数,如下图所示:
MobTech ShareSDK Android端微信分享小程序
MobTech ShareSDK Android端微信分享小程序

3.2客户端回调接口设置
在微信回调类中增加判断参数和打开app的操作:

public class WXEntryActivity extends WechatHandlerActivity {
    /**
     * 处理微信发出的向第三方应用请求app message
     * <p>
     * 在微信客户端中的聊天页面有“添加工具”,可以将本应用的图标添加到其中
     * 此后点击图标,下面的代码会被执行。Demo仅仅只是打开自己而已,但你可
     * 做点其他的事情,包括根本不打开任何页面
     */
//通过直接打开的微信小程序返回
    public void onGetMessageFromWXReq(WXMediaMessage msg) {
        if (msg != null && msg.wxminiprogram_ext_msg != null) {
            Intent iLaunchMyself = getPackageManager().getLaunchIntentForPackage(getPackageName());
            startActivity(iLaunchMyself);
            Log.e("ShareSDK", " WXEntryActivity onGetMessageFromWXReq ===> " + msg.wxminiprogram_ext_msg);
            WXAppExtendObject obj = (WXAppExtendObject) msg.mediaObject;
            Toast.makeText(this, obj.extInfo, Toast.LENGTH_SHORT).show();
        }
    }
    /**
     * 处理微信向第三方应用发起的消息
     * <p>
     * 此处用来接收从微信发送过来的消息,比方说本demo在wechatpage里面分享
     * 应用时可以不分享应用文件,而分享一段应用的自定义信息。接受方的微信
     * 客户端会通过这个方法,将这个信息发送回接收方手机上的本demo中,当作
     * 回调。
     * <p>
     * 本Demo只是将信息展示出来,但你可做点其他的事情,而不仅仅只是Toast
     */
    //通过网页模式微信小程序返回
    public void onShowMessageFromWXReq(WXMediaMessage msg) {
        if (msg != null && msg.mediaObject != null
                && (msg.mediaObject instanceof WXAppExtendObject)) {
            WXAppExtendObject obj = (WXAppExtendObject) msg.mediaObject;
            Toast.makeText(this, obj.extInfo, Toast.LENGTH_SHORT).show();
        }
    }

}

MobTech ShareSDK Android端微信分享小程序

<!-- 微信分享回调 -->
        <activity
            android:name="项目包名.wxapi.WXEntryActivity"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:configChanges="keyboardHidden|orientation|screenSize"
            android:exported="true" />

如上所示,配置完回传的参数,WXEntryActivity.java,在这个类中打开app即可。这样在小程序中打开app就可以跳转到app中了,并且可以获取到回传的参数。

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
胡哥有话说 胡哥有话说
5年前
喜大普奔,微信终于支持外网打开小程序啦!
前言千呼万唤始出来,微信小程序终于支持以URLScheme的形式从外部唤起了。longlongago我们只能在微信内的网页中使用微信开发标签小程序跳转按钮
Easter79 Easter79
4年前
thinkcmf+jsapi 实现微信支付
首先从小程序端接收订单号、金额等参数,然后后台进行统一下单,把微信支付的订单号返回,在把订单号发送给前台,前台拉起支付,返回参数后更改支付状态。。。回调publicfunctionnotify(){$wechatDb::name('wechat')where('status',1)find();
梦
5年前
微信小程序new Date()转换时间异常问题
微信小程序苹果手机页面上显示时间异常,安卓机正常问题image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/b691e1230e2f15efbd81fe11ef734d4f.png)错误代码vardate'2021030617:00:00'vardateT
Easter79 Easter79
4年前
Taro小程序自定义顶部导航栏
微信自带的顶部导航栏是无法支持自定义icon和增加元素的,在开发小程序的时候自带的根本满足不了需求,分享一个封装好的组件,支持自定义icon、扩展dom,适配安卓、ios、h5,全面屏。我用的是京东的Taro多端编译框架写的小程序,原生的也可以适用,用到的微信/taro的api做调整就行,实现效果如下。!在这里插入图片描述(https://i
Wesley13 Wesley13
4年前
PHP 实现微信小程序敏感图片、内容检测接口
主要是为了调用微信小程序msgSecCheck、imgSecCheck接口。先附上小程序接口说明文档地址:https://developers.weixin.qq.com/miniprogram/dev/api/openapi/seccheck/msgSecCheck.html1、首先要获取a
Wesley13 Wesley13
4年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
E小媛同学 E小媛同学
2年前
如何将快递物流查询API集成到微信小程序中
在数字化时代,微信小程序为用户提供了便捷的服务体验。其中,快递物流查询是一个高频需求功能。本文将指导你如何将快递物流查询API集成到微信小程序中,为用户提供实时的物流跟踪服务。