zoukankan      html  css  js  c++  java
  • H5+微信朋友、朋友圈分享

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

    话不多说,直接上代码:

  • 相关阅读:
    Sql Server 2008卸载后再次安装一直报错
    listbox 报错 Cannot have multiple items selected when the SelectionMode is Single.
    Sql Server 2008修改Sa密码
    学习正则表达式
    Sql Server 查询第30条数据到第40条记录数
    Sql Server 复制表
    Sql 常见面试题
    Sql Server 简单查询 异步服务器更新语句
    jQuery stop()用法以及案例展示
    CSS3打造不断旋转的CD封面
  • 原文地址:https://www.cnblogs.com/burtyang/p/10485557.html
Copyright © 2011-2022 走看看