Android 分享微信小程序失败二三事
小菜这两天接入分享微信小程序的入口,本来很简单的几行代码,可最后搞得我头昏脑胀。微信小程序官网上的接入方式已经说的非常清楚,可在小菜自己实践的过程中,却始终不成功。其实真的很简单,而卡住了还真的是很头疼,因此特意记录一下。
集成方式
- build.gradle 中添加 compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:+';
- 在需要调用分享功能的入口添加如下代码,如果配置参数都正常的话基本就可以正常分享了:
public void shareToMiniWX() {
WXMiniProgramObject miniProgramObj = new WXMiniProgramObject();
miniProgramObj.webpageUrl = "http://www.qq.com"; // 兼容低版本的网页链接
miniProgramObj.miniprogramType = WXMiniProgramObject.MINIPTOGRAM_TYPE_RELEASE;// 正式版:0,测试版:1,体验版:2
miniProgramObj.userName = Constants.miniProgramId; // 小程序原始id
miniProgramObj.path = "pages/home/home"; //小程序页面路径
WXMediaMessage msg = new WXMediaMessage(miniProgramObj);
msg.title = "小程序消息Title"; // 小程序消息title
msg.description = "小程序消息Desc"; // 小程序消息desc
Bitmap bmp = BitmapFactory.decodeResource(mContext.getResources(), R.drawable.share_friend_circle_icon_new);
Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, 90, 90, true);
bmp.recycle();
msg.thumbData = BitmapUtil.bmpToByteArray(thumbBmp, true);
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = "" + System.currentTimeMillis();
req.message = msg;
req.scene = SendMessageToWX.Req.WXSceneSession; // 目前支持会话
WXAPIFactory.createWXAPI(mContext, AppID).sendReq(req);
}
问题说明
问题一:无法分享到微信【由于不支持的分享类型,无法分享到微信】
出现这种情况的问题基本上都是分享的ID有问题,一定一定不要认定自己写的绝对正确,多多核对几次,当时小菜就吃了这个亏。原始ID 和 AppID 一定要写对:
- 原始ID 是类似于 gh_... 的15位字符串;
- AppID 是类似于 wx... 的18位字符串。
问题二:无法分享到微信【未在同一应用下】
出现这种情况时一般是 原始ID 与 AppID 不匹配,小菜在测试的时候刚开始用的微信官方提供的 Demo 测试的,AppID 没有更改,便会出现这个问题。
问题三:分享进入小程序,该页面不存在?
分享小程序正常,但是点进去出现错误,是 miniProgramObj.path = "pages/home/home"; 路径错误,尤其是在路径传参时特别注意。
小提示
- miniProgramObj.miniprogramType = WXMiniProgramObject.MINIPTOGRAM_TYPE_RELEASE; 建议用正式版进行测试;
- 目前微信分享小程序只支持 WXSceneSession 聊天页面分享;
- 分享小程序展示的图为 Bitmap 格式,url 图片建议在一个新线程中转为 Bitmap 在进行传参。
整个接入过程真的很简单,最主要就是两个ID正确,而且千万不要自以为是对的!希望各位不会出现小菜遇到的这些坑。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
安卓开发学习笔记(四):Android Stuidio无法实现隐式Intent是为什么?
一.首先检查我们的代码: FirstActivity.java(主活动程序当中的代码):Button3监听器后面的代码就是我们隐式Intent的业务逻辑所在了,大家可以往下面看看,大概在代码的第57行。 1 package com.example.lenovo.activitytest; 2 3 import android.support.v7.app.AppCompatActivity; 4 import android.os.Bundle; 5 import android.view.Menu; 6 import android.view.MenuItem; 7 import android.view.View; 8 import android.widget.Button; 9 import android.widget.Toast; 10 import android.content.Intent; 11 12 public class FirstActivity extends AppCompatActivity { 13 @Override 14 public boole...
-
下一篇
android 记一次富文本加载之路
文章链接:https://mp.weixin.qq.com/s/69TRkmFL1aNuSqfw4ULMJw 项目中经常涉及到富文本的加载,后台管理端编辑器生成的一段html 代码要渲染到移动端上面,一种方法是前端做成html页面,放到服务器上,移动端这边直接webView 加载url即可,还有一种后台接口直接返回这段html富文本的,String类型的,移动端直接加载的;具体的需求按实际情况而定,webview直接加载url的就不说了,这里主要说说关于直接加载html的。 一段简单的html代码 private String txt = "<div>\n" + "<a style=\"font-size: 3s0px\" href=\"https://www.manjiexiang.cn/\">程序猿TX</a>\n" + "</div>\n" + "<img src=\"https://www.manjiexiang.cn/upload/file/2018/05/01/qrcode_for_gh_4185bf56352c_258...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- MySQL数据库在高并发下的优化方案
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Docker使用Oracle官方镜像安装(12C,18C,19C)