微信sdk分享功能详解

这两天项目需求,需要做分享功能。这块之前是用shareSdk实现的,现在发现有些局限,计划用原生的微信官方提供的sdk来做。

因此,这篇文章主要是做一个整理和总结,供自己备忘和大家参考。

1.申请你的AppID

请到 开发者应用登记页面 进行登记,登记并选择移动应用进行设置后,将该应用提交审核,只有审核通过的应用才能进行开发。

2.下载微信终端开发工具包并导入

开发工具包主要包含3部分内容:(其中,只有libammsdk.jar是必须的)

  • - libammsdk.jar(每个第三方应用必须要导入该sdk库,用于实现与微信的通信)

3.添加必要的权限支持:

<uses-permission android:name="android.permission.INTERNET"/>

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

4.代码编写

微信为我们提供了丰富的接口和元素支持分享功能的实现。主要有下面几种元素

WXWebpageObject // 网页对象

WXTextObject       //  文本对象

WXImageObject    //  图片对象

WXMusicObject     // 音乐对象

WXVideoObject    // 视频对象

WXEmojiObject    //Emoji表情对象

下面上代码了。

private IWXAPI api;

api = WXAPIFactory.createWXAPI(this, APPID);

api.registerApp(APPP_ID);

WXWebpageObject webpage = new WXWebpageObject();

//跳转的网页url
webpage.webpageUrl = "http://www.baidu.com";

// 创建媒体消息对象
WXMediaMessage msg = new WXMediaMessage(webpage);

//标题
msg.title = "WebPage Title WebPage Title WebPage Title WebPage Title WebPage Title WebPage Title WebPage Title WebPage Title WebPage Title Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long Very Long";

//描述
msg.description = "WebPage Description WebPage Description WebPage Description WebPage Description WebPage Description WebPage Description WebPage Description WebPage Description WebPage Description Very Long Very Long Very Long Very Long Very Long Very Long Very Long";

//分享市左边的图片(如果没有系统会有一个默认的)图片大小要求小于 32K
Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb);
msg.thumbData = Util.bmpToByteArray(thumb, true);

//Req对象
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("webpage");
req.message = msg;

//分享到朋友圈(微信版本4.2之前不支持分享到朋友圈)

req.scene = SendMessageToWX.Req.WXSceneTimeline ;

//分享给好友

//req.scene = SendMessageToWX.Req.WXSceneSession;
api.sendReq(req);

private String buildTransaction(final String type) {
       return (type == null) ? String.valueOf(System.currentTimeMillis()) : type + System.currentTimeMillis();
}

下面再来看给音频的例子

WXMusicObject music = new WXMusicObject();

music.musicUrl="http://staff2.ustc.edu.cn/~wdw/softdown/index.asp/0042515_05.ANDY.mp3";

music.musicLowBandUrl = "http://www.qq.com";   //低带宽音频

WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = music;
msg.title = "Music Title";
msg.description = "Music Album";

Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb);
msg.thumbData = Util.bmpToByteArray(thumb, true);

SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = buildTransaction("music");
req.message = msg;
req.scene = SendMessageToWX.Req.WXSceneTimeline ;
api.sendReq(req);

5.关于混淆

如果需要混淆代码,为了保证sdk的正常使用,需要在proguard.cfg加上下面两行配置:

-keep class com.tencent.mm.sdk.** {

*;

}

好啦,就这么多了,希望能对看到的人,有所帮助、

时间: 2024-10-26 23:11:50

微信sdk分享功能详解的相关文章

微信分享功能详解

相信来看帖子朋友都有看过[微信官方的开发文档],所以神马申请APP_ID之类的我就不多说了,直接讲代码,请大家看清楚我写的[注释] 地址:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&lang=zh_CN&token=805e15102d4e99fcef6ea996c3b0d5acfa1a34ac 步骤: 1.需要的key,通过创建应用

使用【百度云推送】第三方SDK实现推送功能详解

之前介绍过如何使用shareSDK实现新浪微博分享功能,今天介绍如何使用百度云推送SDK实现Android手机后台推送功能. 运行效果如下 第一步,如果使用百度的SDK,当然要先成为百度的开发者啦,这个就不详述了.成为开发者之后,我们要建立一个应用,如下图所示 第二步,创建好应用之后,我们点击开方者服务管理,进入工程管理页面,然后点击左侧云推送,进入云推送功能页面,具体如下图 进入云推送详细页面之后,我们点击推送设置,设置好我们的应用的包名,然后点击快速实例,将系统给我们产生的示例代码下载下来

andriod 实现新浪、QQ空间、微信朋友圈、微信好友分享功能

前言:自己在学习的过程中的一些操作过程,对分享的一些理解.下面就讲解一下: 下载地址:http://download.csdn.net/detail/u014608640/7490357 首先,我们需要去ShareSdk官方网站http://sharesdk.cn/ 去下载ShareSDK ,然后我们会有4个文件: 根据我自己在学习的过程中只用到了第一个文件夹的 libs目录的2个项目,这2个是必须要的,是ShareSdk提供的,然后需要将这2个放入到自己做的项目当中去,在Res目录下有一个 S

PHP 5.2、5.3、5.4、5.5、5.6 对比以及功能详解

PHP 5.2.5.3.5.4.5.5.5.6 对比以及功能详解 截至目前(2014.2), PHP 的最新稳定版本是 PHP5.5, 但有差不多一半的用户仍在使用已经不在维护 [注] 的 PHP5.2, 其余的一半用户在使用 PHP5.3 [注]. 因为 PHP 那"集百家之长"的蛋疼语法,加上社区氛围不好,很多人对新版本,新特征并无兴趣. 本文将会介绍自 PHP5.2 起,直至 PHP5.6 中增加的新特征. PHP5.2 以前:autoload, PDO 和 MySQLi, 类型

opensns功能详解

#wmd-preview h1 { color: #0077bb } opensns功能详解 软件工程 轮播功能 此项可以用来发布广告.新闻等.对于实验室网站而言,可以用来放实验室最新的招生信息等内容.在后端,我们可以设置图片的开始生效时间.失效时间,同时也可以看到点击量等信息. 网站前端示意图如下: 网站后端操作如下: 发布动态功能 此项类似于QQ空间说说.新浪微博.用户可以发布文字.图片等信息,在网站首页,我们可以看到最新发布的微博,和当前最热门的微博(根据什么判断热门微博?点击量?)其他用

zabbix专题:第九章 zabbix自动发现功能详解

zabbix自动发现功能详解 对Linux有兴趣的朋友加入QQ群:476794643 在线交流 本文防盗链:http://zhang789.blog.51cto.co zabbix自动发现功能详解 网络发现简介 有100台服务器,不想一台台主机去添加,能不能让zabbix自动添加主机呢,当然可以,网络发现便是这个功能,当然前提条件是所有服务器都已经安装了agent或者snmp(其实也可以不用,鉴于我们大部分功能都用agent,所以请安装上agent),server扫描配置好的ip段,自动添加ho

PHP5.2至5.6的新增功能详解

截至目前(2014.2), PHP 的最新稳定版本是 PHP5.5, 但有差不多一半的用户仍在使用已经不在维护 [注] 的 PHP5.2, 其余的一半用户在使用 PHP5.3 [注].因为 PHP 那"集百家之长"的蛋疼语法,加上社区氛围不好,很多人对新版本,新特征并无兴趣.本文将会介绍自 PHP5.2 起,直至 PHP5.6 中增加的新特征. PHP5.2 以前:autoload, PDO 和 MySQLi, 类型约束 PHP5.2:JSON 支持 PHP5.3:弃用的功能,匿名函数

jmeter 基础功能详解

jmeter 基础功能详解 thread group:包含一组线程,每个线程独立地执行测试计划. sampler:采样器,有多种不同的sample实现,用来发起各种请求,如http请求,jdbc请求,javaTest请求等等. logic controller:逻辑控制器有多种不同的实现,可以决定每个sample的执行顺序. listener:有多种不同的实现,主要用于统计测试接话运行中的数据并展示,如可以进行图形化方式展示响应时间. timer:定时器,有多种不同的实现,可用作每个请求见的停顿

ServletContext作用功能详解

ServletContext作用功能详解 ServletContext,是一个全局的储存信息的空间,服务器开始, 其就存在,服务器关闭,其才释放.request,一个用户可有多个:session,一个用户一个:而servletContext,所有用户共用一 个.所以,为了节省空间,提高效率,ServletContext中,要放必须的.重要的.所有用户需要共享的线程又是安全的一些信息. 换一种方式说吧,运行在JAVA虚拟机中的每一个Web应用程序都有一个与之相关的Servlet上下文.Servle