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

    话不多说,直接上代码:

  • 相关阅读:
    Linux 文件特殊权限
    Linux ACL权限
    Linux 用户管理命令
    Asm.js: Javascript的编译目标
    《Zero to One》的一些读书笔记
    Tomcat架构(四)
    Tomcat架构(三)
    Tomcat架构(二)
    Tomcat 架构 (一)
    MATERIAL DESIGN学习笔记
  • 原文地址:https://www.cnblogs.com/burtyang/p/10485557.html
Copyright © 2011-2022 走看看