• MobTech ShareSDK Android端微信分享小程序


    前言:首先要集成ShareSDK,集成步骤请查看这里

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

    集成完之后做小程序的分享,首先需要申请完小程序到微信开放平台绑定到自己的应用,否则无法成功分享在这里插入图片描述

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

    在这里插入图片描述

    还有如下图所示:分享小程序的页面路径:可以直接复制
    在这里插入图片描述

    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 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());
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 小程序需要在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 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);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

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

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

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

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

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

    3.1参数设置
    首先需要仔细阅读下小程序的文档查看这里,在小程序中设置对应的按钮和参数,如下图所示:
    在这里插入图片描述
    在这里插入图片描述

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

    public class WXEntryActivity extends WechatHandlerActivity {
        /**
         * 处理微信发出的向第三方应用请求app message
         * 

    * 在微信客户端中的聊天页面有“添加工具”,可以将本应用的图标添加到其中 * 此后点击图标,下面的代码会被执行。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(); } } /** * 处理微信向第三方应用发起的消息 *

    * 此处用来接收从微信发送过来的消息,比方说本demo在wechatpage里面分享 * 应用时可以不分享应用文件,而分享一段应用的自定义信息。接受方的微信 * 客户端会通过这个方法,将这个信息发送回接收方手机上的本demo中,当作 * 回调。 *

    * 本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(); } } }

    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39

    在这里插入图片描述

    
            
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

  • 相关阅读:
    JavaFX:控件边框设置
    Java------Stream流式编程常用API【.stream,filter(),map()】(三)
    SQL中的正则使用
    博士论文——相似度
    多线程Synchronized锁的使用与线程之间的通讯
    uniapp Android如何打开常用系统设置页面?
    Yarn基础入门
    JAVA----List接口的三种实现类
    基于SSM框架实现学生管理系统
    ARM+SD2405 IIC_RTC驱动编写及IIC通讯协议
  • 原文地址:https://blog.csdn.net/apkkkk/article/details/126500613