android微信分享长图功能,安卓分享9宫格图片到微信

首先感谢@DCloud_Android_磊子,test_weixin_share_mul_pic这个是他写给我的,我只做了一点小改动

用法,先setShareMsg把当前页面的商品名称、相册存到全局变量msg,然后调用shareToWechat弹出actionSheet选择分享到朋友圈或者发送给好友。

函数代码如下:

function setShareMsg(goodsdata){

msg.content = msg.title = goodsdata.goods_name;

/* 分享图片 */

mui.each(goodsdata.pictures, function(i, n){

msg.pictures.push( n.url );

});

/* 分享链接 */

msg.href = mui.constMap.SERVER_HOST + "/mobile/goods.php?id=" + goodsdata.id ;

msg.thumbs.push("_www/72.png");

var userdata = getCachedUser();

if(userdata ){

msg.href += "&father=" + userdata.user.wx.wxid;

}

msg.brief = goodsdata.goods_brief;

getShortUrl(msg.href, function(result){

if(! result.error_code){

msg.url_short = result[0].url_short;

}

});

}

/**

* 发送分享消息

* @param {plus.share.ShareService} s

*/

function shareMessage(ex) {

var pictures = [];

var pic_unloaded = msg.pictures.length ;

function onStateChanged( d, status ) {

switch(d.state){

case 4:

if(status == 200){

console.log("图片下载完成:" + d.filename);

pictures.push( plus.io.convertLocalFileSystemURL(d.filename) );

pic_unloaded --;

if(pic_unloaded == 0){

copyToClip( msg.title + (msg.url_short || msg.href) + "\r\n" + msg.brief );

mui.toast("标题已复制,请长按黏贴");

console.log(JSON.stringify(pictures));

test_weixin_share_mul_pic(ex, pictures, msg.title + (msg.url_short || msg.href) + "\r\n" + msg.brief);

}

} else {

mui.toast("下载图片失败");

}

break;

case 1:

console.log("下载开始");

break;

case 2:

console.log("请求已响应");

break;

case 3:

console.log("下载进行中");

break;

default:

console.log("state: " + d.state);

break;

}

}

mui.toast("下载图片中,即将打开微信分享...");

mui.each(msg.pictures, function(i, n){

// 创建下载任务

var dtask = plus.downloader.createDownload( n );

dtask.addEventListener( "statechanged", onStateChanged, false );

dtask.start();

});

}

function shareToWechat(){

var shareto = ['com.tencent.mm.ui.tools.ShareToTimeLineUI', 'com.tencent.mm.ui.tools.ShareImgUI'];

plus.nativeUI.actionSheet( {title:"分享到微信",cancel:"取消",buttons:[{title:"分享到微信朋友圈"},{title:"发送给微信好友"}]}, function(e){

console.log( "User pressed: "+ e.index);

shareMessage(shareto[e.index - 1]);

} );

}

function test_weixin_share_mul_pic(ex, pics, description){

var Intent = plus.android.importClass('android.content.Intent');

var ComponentName = plus.android.importClass('android.content.ComponentName');

var ArrayList = plus.android.importClass('java.util.ArrayList');

var Uri = plus.android.importClass('android.net.Uri');

var Environment = plus.android.importClass('android.os.Environment');

var File = plus.android.importClass('java.io.File');

//var sdcardDir = plus.android.invoke(Environment.getExternalStorageDirectory(),'getAbsolutePath');

var intent = new Intent();

var localComponentName = new ComponentName("com.tencent.mm", ex);

intent.setComponent(localComponentName);

intent.setAction("android.intent.action.SEND_MULTIPLE");

intent.setType("image/*");

var localArrayList = new ArrayList();

for(var i =0;i< pics.length;i++){

var filePath = pics[i]; //sdcardDir +

//console.log('filePath=' + filePath);

localArrayList.add(Uri.fromFile(new File(filePath)));

}

intent.putParcelableArrayListExtra("android.intent.extra.STREAM", localArrayList);

intent.putExtra(Intent.EXTRA_TEXT, description);

var act = plus.android.runtimeMainActivity();

act.startActivity(intent);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值