客户端微信分享

原创
2012/12/21 15:59
阅读数 2.1K

之前有和大家分享过关于"分享新浪微博"的博客,实现分享到微信在网上找了这方面的资料也比较少,然后自己根据微信官方的说明终于还是搞定了。
先和大家分享几个关于微信opensdk的地址,官网也有相应的开发手册。

注册:
https://open.weixin.qq.com/login/

SDK文档:

http://open.weixin.qq.com/document/sdk/android/?lang=zh_CN

发送请求或响应到微信两个方法来实现:
发送请求是:
    boolean sendReq(BaseReq req);sendReq是第三方app主动发送消息给微信,发送完成之后会切回到第三方app界面;
响应是:
   boolean sendResp(BaseResp resp);微信向第三方app请求数据,第三方app回应数据之后会切回到微信界面。

可以根据自身的需求选择哪种实现方式比较友好。接下来我们看看具体的实现吧:
1:申请app_id  http://open.weixin.qq.com/?lang=zh_CN
2:完善关于你的应用信息,其中比较很重要的是在“详情”里面,设置你的报名和生成相应签名,关于怎么生成签名可以在里面下载生成签名的
否则你会没法测试
3:下载sdk的jar包,并加入到工程libs,编写代码:新建一个activity,在oncreate里面通过 IWXAPI把 你的apk注册到微信里面

IWXAPI mApi = WXAPIFactory. createWXAPI( mContext, APP_ID , true);
boolean register = mApi.registerApp( APP_ID );

如果返回true表示注册成功;
接下来就是分享的操作,我们写一个方法来实现分享:
boolean result = false;
final String text = "my app" ;
final String content = "UIDemo" ;
WXTextObject wxTextObject = new WXTextObject();
wxTextObject. text = text;
WXMediaMessage wxMediaMessage = new WXMediaMessage();
wxMediaMessage. mediaObject = wxTextObject;
wxMediaMessage. title = text;
wxMediaMessage. description = content;
SendMessageToWX.Req sendReq = new SendMessageToWX.Req();
sendReq. transaction = String.valueOf(System. currentTimeMillis());
sendReq. message = wxMediaMessage;
//发送至朋友圈
sendReq. scene = SendMessageToWX.Req. WXSceneTimeline;
//发送到会话
//sendReq.scene = SendMessageToWX.Req.WXSceneSession;
//发送数据
result = mApi .sendReq(sendReq);
/*GetMessageFromWX.Resp sendResp = new GetMessageFromWX.Resp();
//new GetMessageFromWX.Req(getIntent().getExtras()).transaction;
sendResp.transaction = String.valueOf(System.currentTimeMillis());
sendResp.message = wxMediaMessage;
result = mApi.sendResp(sendResp);*/
System. out .println("result:" + result);

要注意scene的参数设置,如果是分享到好友圈和分享给朋友参数的赋值不一样,这样就完成了微信的分享,比较简单,但是有几个方面需要注意:
a):不管是分享到好友还是朋友圈你的手机里必须需要安装微信的客户端
b):如果手机里面的微信是没有登录的状态,首次分享的时候会跳转到登录,登录之后再次点击分享就可以分享了,这块我查看了其他应用的实现方式,“冷笑话”客户端的“ 分享给好友 ”、“分享到好友圈”都是一样。
展开阅读全文
打赏
1
9 收藏
分享
加载中
更多评论
打赏
0 评论
9 收藏
1
分享
返回顶部
顶部