H5 LayaAir实现复制微信号到剪切板功能

现在微信和QQ可以说普及的非常好了,在做游戏的过程中 与玩家进行沟通的时候,经常会设置客服与玩家进行在线的对接和沟通。
所以,为了简化玩家的操作,在游戏里面经常设置<复制微信号>类似的按钮,玩家点击按钮之后就会把你想让玩家复制的信息方到剪切板里面,玩家到指定的输入地点只需要黏贴一下即可,免去了记忆号码的麻烦(我觉得麻烦,号码好记忆还可以,哈哈)
首先需要去了解一下clipboard.js
git地址
连接里面有下载地址,就是下载了一个js辅助文件,导入到你的工程项目里面,然后再index.html里面将这个js文件引入

<script type="text/javascript" src="clipboard.js"></script> 

在laya场景里面创建你的按钮,显示出来,运行后知道在哪里就好;
在index.html里面 用css的套路创建一个按钮

<button class="btnCopyWXNumber" id="btnCopyWXNumber" style="position:absolute;top:-100px">Copy</button>

上面就定义了一个button,这个按钮被加载的你的h5界面上,在顶部之上,界面里面是看不见的并且也不会显示。
下面是在TS代码里面找到这个按钮,并且显示到界面里(加入到了layaContainer里面)

			var layaContainer =Laya.Browser.getElementById("layaContainer");
			this._btnCopyWxNumber= Laya.Browser.getElementById("btnCopyWXNumber");//找到对应的btnCopyWXNumber按钮
			this._btnCopyWxNumber.innerHTML = '';
			this._btnCopyWxNumber.style.width = this.btWidth+'px';//设置按钮的宽和高,与场景里面按钮的宽高相同
			this._btnCopyWxNumber.style.height =this.btHeight+ 'px';
			this._btnCopyWxNumber.style.position = "absolute";
			this._btnCopyWxNumber.style["font-size"] = '28px';
			this._btnCopyWxNumber.style.color = '#ffffff';
			this._btnCopyWxNumber.style["opacity"] = '0';
			
			layaContainer.appendChild(this._btnCopyWxNumber);//这样就把这个按钮加入到了layaContainer里面,并且显示出来了,可以在Elements里面找到

如图中按钮btnServiceWXPublic
下面就是适配这个按钮,让它完美的覆盖到你的在Laya场景里面创建的按钮。
贡献一下横屏时候的代码,很好用的,哈哈

private onHengPing(scale:number)
{
	let xs = (Laya.Browser.clientHeight / Laya.stage.height);
	let ws = (Laya.Browser.clientWidth / Laya.stage.width);
	let x = this.view._btnCopyWxNumber.x;
	let y = this.view._btnCopyWxNumber.y;
	let w = scale * ws * this.btWidth*0.73;
	let h = scale * xs * this.btHeight*0.73;
	this._btnCopyWxPublic.style.width = w + 'px';
	this._btnCopyWxPublic.style.height = h + 'px';
	this._btnCopyWxPublic.style.left =(Laya.Browser.clientWidth / 2 +x*ws-this.view.box.width*ws / 2)+ 'px';//this.view.box.width是父容器的宽度
	this._btnCopyWxPublic.style.top = (xs * ( this.view.box.y + scale * y)) + 'px';
}

达到这个效果就说明这个html里面创建的按钮和场景里面的按钮会一直在一起
然后js里面添加代码

var btnCopyWXNumber = new Clipboard ('.btnCopyWXNumber', {
	text: function () {
		flagText ("微信公众号复制成功!");
		return "WEIXINHAO";
	}
});

这样,你在场景里面点击了复制号码按钮,就会将“WEIXINHAO”复制到剪切板,然后找个地方就能黏贴出来。

哈哈,自己记录下,0.0

其实还有更简单的

private function doCopy():void{
	var oInput = Browser.document.createElement('input');
	oInput.value =Comm.myInfo.displayId;
	Browser.document.body.appendChild(oInput);
	oInput.select(); // 选择对象
	Browser.document.execCommand("Copy"); // 执行浏览器复制命令
    oInput.className = 'oInput';
    oInput.style.display='none';
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值