写点什么

MobTech ShareSDK Android 端微信分享小程序

  • 2022 年 8 月 24 日
    上海
  • 本文字数:3728 字

    阅读完需:约 12 分钟

前言:首先要集成 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<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 参数设置

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




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();        }    }
}
复制代码



<!-- 微信分享回调 -->        <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 中了,并且可以获取到回传的参数。

用户头像

还未添加个人签名 2019.05.08 加入

还未添加个人简介

评论

发布
暂无评论
MobTech ShareSDK Android端微信分享小程序_微信小程序_MobTech袤博科技_InfoQ写作社区