burtyang
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开发

话不多说,直接上代码:

 

分类:

技术点:

相关文章: