uni-app编译H5,复制功能,兼容安卓和ios

在用uni-app写项目的时候,编译H5,复制功能没法使用uni-app自己封装的方法,特此记录!!!

            copyText(node) {
			    if (!node) {
			        return;
			    }
			    var result;
			    // 将复制内容添加到临时textarea元素中
			    var tempTextarea = document.createElement('textarea');
			    document.body.appendChild(tempTextarea);
			    if (typeof(node) == 'object') {
			        // 复制节点中内容
			        // 是否表单
			        if (node.value) {
			            tempTextarea.value = node.value;
			        } else {
			            tempTextarea.value = node.innerHTML;
			        }
			    } else {
			        // 直接复制文本
			        tempTextarea.value = node;
			    }
			    // 判断设备
			    var u = navigator.userAgent;
				console.log(u.match(/(iPhone|iPod|iPad);?/i))
			    if (u.match(/(iPhone|iPod|iPad);?/i)) {
			        // iOS
			        // 移除已选择的元素
			        window.getSelection().removeAllRanges();
			        // 创建一个Range对象
			        var range = document.createRange();
			        // 选中
			        range.selectNode(tempTextarea);
					tempTextarea.select();
			        // 执行选中元素
			        window.getSelection().addRange(range);
			        // 复制
			        result = document.execCommand('copy');
			        // 移除选中元素
			        window.getSelection().removeAllRanges();
			
			    } else {
			        // 选中    
			        tempTextarea.select();
			        // 复制
			        result = document.execCommand('Copy');
			    }
			    // 移除临时文本域
			    document.body.removeChild(tempTextarea);
			    if (result) {
					uni.showToast({
						duration:1000,
						icon:'none',
						title:"复制成功"
					})
			    } else {
					uni.showToast({
						duration:1000,
						icon:'none',
						title:"复制失败"
					})
			    }
			
			    return result;
			}

将这个方法放到methods 对象中,使用条件编译

            // #ifdef H5
		    _this.copyText('要复制的字符串');
		    // #endif

猜你喜欢

转载自blog.csdn.net/weixin_44546357/article/details/123502117