import {showToast} from './index';
//上面函数只是简单的封装了uni.showToast方法,只是显示toast作用而已,大家可删除。
/**
* 微信朋友:new ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareImgUI");
* 微信朋友圈:new ComponentName("com.tencent.mm", "com.tencent.mm.ui.tools.ShareToTimeLineUI");
* 微博:new ComponentName("com.sina.weibo", "com.sina.weibo.composerinde.ComposerDispatchActivity");
* QQ朋友:new ComponentName("com.tencent.mobileqq", "com.tencent.mobileqq.activity.JumpActivity");
* QQ空间:new ComponentName("com.qzone", "com.qzonex.module.operation.ui.QZonePublishMoodActivity");
*/
/**
* 实现分享多图到朋友圈
*/
/** 分享到 0:微信好友、1:微信朋友圈
* 分享到朋友圈时失效
* const shareto = ['com.tencent.mm.ui.tools.ShareImgUI','com.tencent.mm.ui.tools.ShareToTimeLineUI'];
*/
const shareto = 'com.tencent.mm.ui.tools.ShareImgUI';
/** 微信分享图片
* param1 shareto数组中的一个
* param2 图片数组
* param3 描述信息
*/
function 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);
}
/** 微信分享视频
* param1 shareto数组中的一个
* param2 视频数据
*/
/* function weixin_share_video(ex, src) {
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("video/*");
var localFile = Uri.fromFile(new File(src));
intent.putParcelableArrayListExtra("android.intent.extra.STREAM", localFile);
intent.putExtra(Intent.EXTRA_TEXT, description);
var act = plus.android.runtimeMainActivity();
act.startActivity(intent);
} */
function weixin_share_video(src){
var Intent = plus.android.importClass('android.content.Intent');
var ComponentName = plus.android.importClass('android.content.ComponentName');
var File = plus.android.importClass('java.io.File');
var Uri = plus.android.importClass('android.net.Uri');
var intent = new Intent(Intent.ACTION_SEND);
var localComponentName = new ComponentName("com.tencent.mm", shareto);
intent.setComponent(localComponentName);
intent.setType("video/*");
var localFile = new File(src);
intent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(localFile));
//intent.putParcelableArrayListExtra("android.intent.extra.STREAM", localFile);
var act = plus.android.runtimeMainActivity();
act.startActivity(intent);
}
//转发图片
export function myshare(picsUrl){
var pictures = []; //图片数组
let imgsLen = picsUrl.length;
let count = 0;
//下载图片
uni.showLoading({
title: '图片下载中...'
});
downloadPics();
function downloadPics(){
if(count < imgsLen){
uni.downloadFile({
url: picsUrl[count],
success(res) {
let tempFilePath = res.tempFilePath;
pictures.push(plus.io.convertLocalFileSystemURL(tempFilePath));
count++;
downloadPics();
},
fail(){
showToast('下载图片失败');
}
});
}else{
uni.hideLoading();
weixin_share_mul_pic(shareto, pictures);
}
};
};
//转发视频
export function shareMyVideo(src){
uni.showLoading({
title: '视频下载中...'
});
var downloadTask = uni.downloadFile({
url: src,
success(res){
showToast('下载完成');
uni.hideLoading();
let tempFilePath = res.tempFilePath;
let video1 = plus.io.convertLocalFileSystemURL(tempFilePath);
weixin_share_video(video1);
},
fail() {
uni.hideLoading();
showToast('下载失败');
}
});
var myprecent = 0;
downloadTask.onProgressUpdate((res) => {
if(res.progress > myprecent){
myprecent = res.progress;
uni.showLoading({
title: myprecent+'%'
});
};
});
}
使用uni-app开发
话不多说,直接上代码: