android微信分享要注意的地方
最近在做android端分享的功能,在微信开放平台查看了下官网上的开发文档,一步一步的按文档上的步骤来:
1、申请你的AppID
2、下载开发工具包
3、搭建开发环境,引入libammsdk.jar文件
4、写发送请求代码(注意:在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类)
一切都挺顺利的,调试了也能正常发送分享。但是当发布后再安装到手机上,点击分享的时候就没有任何反应,也没提示。
最后在网上查到说应用包名、签名、APP_ID要对应,想想问题应该出现在签名上,就安装了发布后的apk,再用genSignature.apk获取了一下签名,
发现和原来的不一样。于是用这个签名又去官网登记了一个应用,获取新的appid,appkey。发布的时候使用刚登记的appid,安装后微信分享没问题了,
大功告成。
所以做微信分享的时候要申请两个应用,一个用做开发,一个用在发布正式上。
分享一下代码(替换自己的appid)
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {
private IWXAPI api;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
LogUtil.d("微信", "微信响应页面", true);
api = WXAPIFactory.createWXAPI(this, AppID, false);
api.registerApp(AppID);
api.handleIntent(getIntent(), this);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
api.handleIntent(intent, this);
}
public void onReq(BaseReq arg0) {
LogUtil.d("微信", "BaseReq:" + arg0.getType(), true);
switch (arg0.getType()) {
case ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX:
LogUtil.d("", "ConstantsAPI.COMMAND_GETMESSAGE_FROM_WX", true);
break;
case ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX:
LogUtil.d("", "ConstantsAPI.COMMAND_SHOWMESSAGE_FROM_WX", true);
break;
default:
break;
}
finish();
}
public void onResp(BaseResp arg0) {
LogUtil.d("微信", "BaseResp:" + arg0.errCode, true);
String result = "";
switch (arg0.errCode) {
case BaseResp.ErrCode.ERR_OK:
result = "亲,分享成功了";
break;
case BaseResp.ErrCode.ERR_USER_CANCEL:
result = "取消分享";
break;
case BaseResp.ErrCode.ERR_AUTH_DENIED:
result = "认证失败";
break;
default:
result = "errcode_unknown";
break;
}
Toast.makeText(this, result, Toast.LENGTH_LONG).show();
finish();
}
}
分享方法
IWXAPI wxApi = WXAPIFactory.createWXAPI(this, AppID);
wxApi.registerApp(AppID);
public void WxSendRequest(int towhere, String sharestr) {
LogUtil.e("", "博饼微信分享", true);
WXTextObject txtObject = new WXTextObject();
txtObject.text = sharestr;
WXMediaMessage msg = new WXMediaMessage(txtObject);
msg.title = mBoCake.getTitle();
msg.description = mBoCake.getTitle();
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = String.valueOf(System.currentTimeMillis());
req.message = msg;
if (towhere == 0) {
req.scene = SendMessageToWX.Req.WXSceneSession;//分享给好友
} else {
req.scene = SendMessageToWX.Req.WXSceneTimeline;//朋友圈
}
wxApi.sendReq(req);
}
android微信分享要注意的地方的更多相关文章
- Android微信分享功能实例+demo
Android微信分享功能实例 1 微信开放平台注册 2 获得appId,添加到程序中,并运行程序 3 使用应用签名apk生成签名,添加到微信开放平台应用签名,完成注册 4 测试分享功能. 有问题请留 ...
- Android 微信分享,分享到朋友圈与分享到好友,以及微信登陆
extends:http://www.cnblogs.com/android100/p/Android-qq.html 一.申请你的AppID http://open.weixin.qq.com/ 友 ...
- Android 微信分享与QQ分享功能
微信分享与QQ分享功能现在都挺常见的,可以根据一些第三方社会化分功能快速实现,不过多多少少都不怎么纯净,最好都是自己看官方文档来实现就最好了~ 一.微信分享 微信分享功能需要先在微信开放平台注册应用并 ...
- android微信分享不出去?四步搞定!
现在做的项目中集成了友盟分享,产品要求集成微信.朋友圈.QQ.QQ空间.短信这几个分享平台.按照友盟的文档集成一切都很顺利,集成成功以后测试QQ.QQ空间.短信都没有问题,唯独微信和朋友圈一直分享不出 ...
- Android微信分享图片大于32k进行压缩
微信分享视频的时候,需要传一个图片数组,大小不能大于32k. 解决方案:使用Bitmap自带的compress方法解决了这个问题. 源码如下: <span style="font-si ...
- Android 微信分享图文资料
上个项目做Android的微信分享,需要分享的内容有图片有文字,看了微信分享的SDK,貌似没有这个API,在网上搜了好久,总算找到解决方法了,直接上代码: public void sendReq(Co ...
- Android 微信分享解疑
from:http://blog.csdn.net/freesonhp/article/details/10756663 1.建立自己的应用 TestShareWX (1)应用包名是com.frees ...
- Android 微信分享不出去?四步搞定!
现在做的项目中集成了友盟分享,产品要求集成微信.朋友圈.QQ.QQ空间.短信这几个分享平台.按照友盟的文档集成一切都很顺利,集成成功以后测试QQ.QQ空间.短信都没有问题,唯独微信和朋友圈一直分享不出 ...
- android 微信分享没反应问题总结
一.废话 我必须说我再这个上面吃了很多的亏,所以希望有人不跟我一样吃亏.因为我本身不够仔细的原因,所以我希望能够做一些总结.---废话讲完. 这个文章已经过时了.是几年前写的.http://www. ...
随机推荐
- c#大数加法
在C#中,我们经常需要表示整数.但是,c#的基本数据类型中,最大的long也只能表示-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807之间的数 ...
- [NOIP2015] 子串(dp)
题目描述 有两个仅包含小写英文字母的字符串 A 和 B.现在要从字符串 A 中取出 k 个互不重叠的非空子串,然后把这 k 个子串按照其在字符串 A 中出现的顺序依次连接起来得到一 个新的字符串,请问 ...
- 简述 C、C++程序编译的内存分配情况【转】
面试题 9:简述 C.C++程序编译的内存分配情况 C.C++中内存分配方式可以分为三种: (1)从静态存储区域分配: 内存在程序编译时就已经分配好,这块内存在程序的整个运行期间都存在.速度快. ...
- js在IE和FF下的兼容性问题
本文出自前端档案,以作学习参考之用.自己也补充了一些内容 长久以来JavaScript兼容性一直是Web开发者的一个主要问题.在正式规范.事实标准以及各种实现之间的存在的差异让许多开发者日夜煎熬.为此 ...
- 关于python如何简单跳出多层循环
上述代码的逻辑是,在跳出子循环之前定义一个变量flag为Ture,第一层循环跳出之后,如果要跳出第二个循环,直接调用变量flag,可以直接跳出第二层循环.这里要注意的是缩进,不然会出错误. 如果是多层 ...
- mysql if case条件更新
在mysql中,如果你要根据某个字段的值不一样,来更新另一个字段的值,可以用如下sql语句: 如果仅仅是两个分支,if语句就可以了 update tm set page_name=if(q_aswer ...
- 远程连接Oracle时出现ORA-01034 和ORA-27101 的解决办法
服务器本地连接自身没有问题,但远程客户端连接时报错,远程客户端使用tnsping也没有问题. cmd->tnsping 192.168.56.101:1521/ora11gR2 tnsping命 ...
- [PHP] - Laravel - 用户登陆中间件
前言 Laravel 4中,可以使用Route::filter,而在Laravel 5中,没有了filter.php文件,官方建议使用中间件做. 下面是用户登陆的测试例子,涉及到的一些方法和使用,先参 ...
- 选盘秘籍:用户如何选择SSD/SATA/SAS?
先学习下一些专业词汇 IDE (Integrated Drive Electronics) 电子集成驱动器 它的本意是指把"硬盘控制器"与"盘体"集成在一起的硬 ...
- vue.js 1中父组件跳到子组件中并传参让子组件显示不同的内容
父组件中的点击跳转: <ul class="insurance-entry clearfloat"> <li v-link="{name:'produc ...