最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

android官方微信分享,android,微信分享

互联网 admin 39浏览 0评论

android官方微信分享,android,微信分享

Android微信分享的成功但报错

在app里加入微信分享的功能,之前还是没问题的,但现在发现在一些机型上

(1)点击分享给好友后,选择返回应用则报错,但它是发送成功的

(2)点击分享到朋友圈后就报错,同样它也是发送成功的

(ActivityA —— ActivityB(Fragment) —— 点击分享 ————分享成功 ————报错 ————ActivityA)

即分享成功后,它应该是返回到ActivityB的Fragment页面的。

请问是出了什么问题,做分享的功能跟WXEntryActivity有关吗,因为我的WXEntryActivity里是有用于处理微信用户登录的?

分享代码

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

switch (v.getId()) {

//分享给微信好友

case R.id.weChat_friends:{

//构建链接信息的分享对象

WXWebpageObject webpageObject = new WXWebpageObject();

webpageObject.webpageUrl = shareUrl;

//将webpageObject分装到WXMediaMessage里

WXMediaMessage mediaMessage = new WXMediaMessage();

mediaMessage.mediaObject = webpageObject;

mediaMessage.description = description ;

mediaMessage.setThumbImage(bitmap);

//构建发送请求

SendMessageToWX.Req req = new SendMessageToWX.Req();

//设置发送场景为分享给微信好友

req.scene = SendMessageToWX.Req.WXSceneSession;

//设置该事务为唯一事务(因为时间只有一个)

req.transaction = String.valueOf(System.currentTimeMillis());

//将封装好的WXMediaMessage再封装给SendMessageToWX.Req

req.message = mediaMessage;

//通过IWXAPI发送请求

MyApplication.api.sendReq(req);

break;

}

//分享到微信朋友圈

case R.id.weChat_TimeLine:{

WXWebpageObject webpageObject = new WXWebpageObject();

webpageObject.webpageUrl = shareUrl;

WXMediaMessage mediaMessage = new WXMediaMessage();

mediaMessage.mediaObject = webpageObject;

mediaMessage.title = title;

mediaMessage.setThumbImage(bitmap);

SendMessageToWX.Req req = new SendMessageToWX.Req();

req.scene = SendMessageToWX.Req.WXSceneTimeline;

req.transaction = String.valueOf(System.currentTimeMillis());

req.message = mediaMessage;

MyApplication.api.sendReq(req);

break;

}

default:

break;

}

}

WXEntryActivity里关于ERR_OK处理的代码,这里只是对微信用户做了操作,只是获取到该用户的相关信息

public void onResp(BaseResp arg0) {

switch (arg0.errCode ) {

//同意授权

case BaseResp.ErrCode.ERR_OK:

SendAuth.Resp resp = (Resp) arg0;

//获得code

String code = resp.code;

//把code,APPID,APPSECRET替换到要请求的地址里,成为新的请求地址

newGetCodeRequest = getCodeRequest(code);

//请求新的地址,解析相关数据,包括openid,acces_token等

HttpUtil.sendHttpRequest(newGetCodeRequest , new HttpCallbackListener() {

@Override

public void onFinish(String response) {

//Log.d("WXActivity", response);

parseAccessTokenJSON(response);

//将解析得到的access_token和openid在请求unionid地址里替换

newGetUnionIDRequest = getUnionID(mAccess_token, mOpenId);

//请求新的unionid地址,解析出返回的unionid等数据

HttpUtil.sendHttpRequest(newGetUnionIDRequest , new HttpCallbackListener() {

@Override

public void onFinish(String response) {

parseUnionIdJson(response);

}

@Override

public void onError(Exception e) {

}

});

}

@Override

public void onError(Exception e) {

// TODO Auto-generated method stub

}

});

// new Thread(new Runnable() {

// @Override

// public void run() {

// // TODO Auto-generated method stub

// try {

// Thread.sleep(1000);

// } catch (InterruptedException e) {

// // TODO Auto-generated catch block

// e.printStackTrace();

// }

// WXEntryActivity.this.finish();

// }

// }).start();

Timer timer = new Timer();

TimerTask task= new TimerTask() {

@Override

public void run() {

// TODO Auto-generated method stub

WXEntryActivity.this.finish();

}

};

timer.schedule(task, 2000);

break;

}

感谢 有明 的解答,这是修改后的部分代码:

@Override

public void onResp(BaseResp arg0) {

//关于数值的类型,微信官方文档里有写:

//发送OpenAPI Auth验证 的数值为 1

//分享消息到微信 的数值为2

if(arg0.getType() == 2){

finish();

}

if(arg0.getType() == 1){

SendAuth.Resp respLogin = (Resp) arg0;

//获得code

String code = respLogin.code;

switch (arg0.errCode ) {

//同意授权

case BaseResp.ErrCode.ERR_OK:

。。。。。。

相关阅读:

python继承调用问题

引用opencv2.framework的错误

nginx报错Syntax error: newline unexpected?

Python:urllib2.urlopen报错

laravel返回的json如何全转换为字符串

检测更新是询问服务器还是服务器给 push 通知?

有无又拍云版的CDN Sync Tool

babel ie8 new Class throw 'Cannot call a class as a function'

一切正常为何localhost和127.0.0.1无法访问?

关于 Redis 占用 CPU 过高的性能问题

向SQLSERVER2008中导入oracle数据出错

webpy错误提示:AttributeError:‘XXX’

为什么有些类的方法开始先判断getId() == null?

ubuntu npm 安装express 和hexo时出现一个问题?

python的pymysql如何插入date类型的字段

如何实现整个网站微软雅黑,有字库等比较麻烦啊

elasticsearch索引中设置mapping中类型的_source和_all为false后,是否就查不到数据了?

C#日期格式化方法中IFormatProvider怎么用?

c 宏 在很多地方都会定义一个交换两个数的宏 为什么在传参数的时候 不是传指针也能交换

【已解决】使用requirejs出现错误

android官方微信分享,android,微信分享

Android微信分享的成功但报错

在app里加入微信分享的功能,之前还是没问题的,但现在发现在一些机型上

(1)点击分享给好友后,选择返回应用则报错,但它是发送成功的

(2)点击分享到朋友圈后就报错,同样它也是发送成功的

(ActivityA —— ActivityB(Fragment) —— 点击分享 ————分享成功 ————报错 ————ActivityA)

即分享成功后,它应该是返回到ActivityB的Fragment页面的。

请问是出了什么问题,做分享的功能跟WXEntryActivity有关吗,因为我的WXEntryActivity里是有用于处理微信用户登录的?

分享代码

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

switch (v.getId()) {

//分享给微信好友

case R.id.weChat_friends:{

//构建链接信息的分享对象

WXWebpageObject webpageObject = new WXWebpageObject();

webpageObject.webpageUrl = shareUrl;

//将webpageObject分装到WXMediaMessage里

WXMediaMessage mediaMessage = new WXMediaMessage();

mediaMessage.mediaObject = webpageObject;

mediaMessage.description = description ;

mediaMessage.setThumbImage(bitmap);

//构建发送请求

SendMessageToWX.Req req = new SendMessageToWX.Req();

//设置发送场景为分享给微信好友

req.scene = SendMessageToWX.Req.WXSceneSession;

//设置该事务为唯一事务(因为时间只有一个)

req.transaction = String.valueOf(System.currentTimeMillis());

//将封装好的WXMediaMessage再封装给SendMessageToWX.Req

req.message = mediaMessage;

//通过IWXAPI发送请求

MyApplication.api.sendReq(req);

break;

}

//分享到微信朋友圈

case R.id.weChat_TimeLine:{

WXWebpageObject webpageObject = new WXWebpageObject();

webpageObject.webpageUrl = shareUrl;

WXMediaMessage mediaMessage = new WXMediaMessage();

mediaMessage.mediaObject = webpageObject;

mediaMessage.title = title;

mediaMessage.setThumbImage(bitmap);

SendMessageToWX.Req req = new SendMessageToWX.Req();

req.scene = SendMessageToWX.Req.WXSceneTimeline;

req.transaction = String.valueOf(System.currentTimeMillis());

req.message = mediaMessage;

MyApplication.api.sendReq(req);

break;

}

default:

break;

}

}

WXEntryActivity里关于ERR_OK处理的代码,这里只是对微信用户做了操作,只是获取到该用户的相关信息

public void onResp(BaseResp arg0) {

switch (arg0.errCode ) {

//同意授权

case BaseResp.ErrCode.ERR_OK:

SendAuth.Resp resp = (Resp) arg0;

//获得code

String code = resp.code;

//把code,APPID,APPSECRET替换到要请求的地址里,成为新的请求地址

newGetCodeRequest = getCodeRequest(code);

//请求新的地址,解析相关数据,包括openid,acces_token等

HttpUtil.sendHttpRequest(newGetCodeRequest , new HttpCallbackListener() {

@Override

public void onFinish(String response) {

//Log.d("WXActivity", response);

parseAccessTokenJSON(response);

//将解析得到的access_token和openid在请求unionid地址里替换

newGetUnionIDRequest = getUnionID(mAccess_token, mOpenId);

//请求新的unionid地址,解析出返回的unionid等数据

HttpUtil.sendHttpRequest(newGetUnionIDRequest , new HttpCallbackListener() {

@Override

public void onFinish(String response) {

parseUnionIdJson(response);

}

@Override

public void onError(Exception e) {

}

});

}

@Override

public void onError(Exception e) {

// TODO Auto-generated method stub

}

});

// new Thread(new Runnable() {

// @Override

// public void run() {

// // TODO Auto-generated method stub

// try {

// Thread.sleep(1000);

// } catch (InterruptedException e) {

// // TODO Auto-generated catch block

// e.printStackTrace();

// }

// WXEntryActivity.this.finish();

// }

// }).start();

Timer timer = new Timer();

TimerTask task= new TimerTask() {

@Override

public void run() {

// TODO Auto-generated method stub

WXEntryActivity.this.finish();

}

};

timer.schedule(task, 2000);

break;

}

感谢 有明 的解答,这是修改后的部分代码:

@Override

public void onResp(BaseResp arg0) {

//关于数值的类型,微信官方文档里有写:

//发送OpenAPI Auth验证 的数值为 1

//分享消息到微信 的数值为2

if(arg0.getType() == 2){

finish();

}

if(arg0.getType() == 1){

SendAuth.Resp respLogin = (Resp) arg0;

//获得code

String code = respLogin.code;

switch (arg0.errCode ) {

//同意授权

case BaseResp.ErrCode.ERR_OK:

。。。。。。

相关阅读:

python继承调用问题

引用opencv2.framework的错误

nginx报错Syntax error: newline unexpected?

Python:urllib2.urlopen报错

laravel返回的json如何全转换为字符串

检测更新是询问服务器还是服务器给 push 通知?

有无又拍云版的CDN Sync Tool

babel ie8 new Class throw 'Cannot call a class as a function'

一切正常为何localhost和127.0.0.1无法访问?

关于 Redis 占用 CPU 过高的性能问题

向SQLSERVER2008中导入oracle数据出错

webpy错误提示:AttributeError:‘XXX’

为什么有些类的方法开始先判断getId() == null?

ubuntu npm 安装express 和hexo时出现一个问题?

python的pymysql如何插入date类型的字段

如何实现整个网站微软雅黑,有字库等比较麻烦啊

elasticsearch索引中设置mapping中类型的_source和_all为false后,是否就查不到数据了?

C#日期格式化方法中IFormatProvider怎么用?

c 宏 在很多地方都会定义一个交换两个数的宏 为什么在传参数的时候 不是传指针也能交换

【已解决】使用requirejs出现错误

发布评论

评论列表 (0)

  1. 暂无评论