国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

uniapp微信小程序使用canvas自定義分享名片

這篇具有很好參考價(jià)值的文章主要介紹了uniapp微信小程序使用canvas自定義分享名片。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

微信小程序分享名片,uni-app,小程序,javascript

template

<view class="hideCanvasView">
	<canvas class="shareCanvas" canvas-id="shareCanvas" style="width: 452px; height: 362px;"></canvas>
</view>

js
需要分享的頁面加上onShareAppMessage,在methods中定義繪畫方法createCanvasImage

methods:{
	createCanvasImage(avatar) {
		let self = this;
		//下載獲取頭像
		let headImg = new Promise(function(resolve) {
			wx.downloadFile({
			    url: avatar,
			    success: function (res) {
			      //返回零時(shí)地址
				  resolve(res.tempFilePath);
			    }
			}) 
		});
		Promise.all([headImg]).then(function(result) {
		console.log("開始繪制分享背景圖",result)
		setTimeout(() => {
			const ctx = uni.createCanvasContext('shareCanvas');
			//清空畫布
			ctx.clearRect(0, 0, 452, 362);
			//背景圖片
			ctx.drawImage('../../static/share_bg.png', 0, 0, 452, 362);
			//頭像的白色邊框
			ctx.arc(68, 70, 44, 0, 2 * Math.PI);
			ctx.setFillStyle('#ffffff');
			ctx.fill();
			//頭像
			ctx.save()
			ctx.beginPath()
			ctx.arc(68, 70, 40, 0, 2 * Math.PI)
			ctx.clip()
			ctx.drawImage(result[0], 30, 32, 80, 80)
			ctx.restore()
			//名稱
			ctx.setFillStyle('#ffffff'); // 文字顏色
			ctx.setFontSize(34); // 文字字號(hào)
			ctx.fillText(self.CustomerDetail.name, 124, 64); // 繪制文字
			//班級(jí)
			ctx.setFillStyle('#ffffff'); // 文字顏色
			ctx.setFontSize(20); // 文字字號(hào)
			ctx.fillText('MBA班級(jí):'+self.CustomerDetail.className, 124, 100); // 繪制文字
			//公司圖標(biāo)
			ctx.drawImage('../../static/gs.png', 28, 136, 24, 24);
			//公司名稱
			ctx.setFillStyle('#ffffff'); // 文字顏色
			ctx.setFontSize(20); // 文字字號(hào)
			ctx.fillText(self.CustomerDetail.company , 64, 154); // 繪制文字
			//職位圖標(biāo)
			ctx.drawImage('../../static/zw.png', 28, 174, 24, 24);
			//職位名稱
			ctx.setFillStyle('#ffffff'); // 文字顏色
			ctx.setFontSize(20); // 文字字號(hào)
			ctx.fillText(self.CustomerDetail.position, 64, 192); // 繪制文字
			//地址圖標(biāo)
			ctx.drawImage('../../static/dz.png', 28, 212, 24, 24);
			//地址名稱
			ctx.setFillStyle('#ffffff'); // 文字顏色
			ctx.setFontSize(20); // 文字字號(hào)
			
			let address=self.region[0][self.regionindex[0]].label?self.region[0][self.regionindex[0]].label:''+'-'
			+self.region[1][self.regionindex[1]].label?self.region[1][self.regionindex[1]].label:''+'-'
			+self.region[2][self.regionindex[2]].label?self.region[2][self.regionindex[2]].label:'';
			ctx.fillText(address, 64, 230); // 繪制文字
			//繪制虛線
			ctx.setLineDash([2, 4], 1);
			ctx.beginPath();
			ctx.moveTo(12, 264);
			ctx.lineTo(440, 264);
			ctx.setStrokeStyle('#ffffff')
			ctx.stroke();
			//繪制底部按鈕
			let x = 126,
				y = 286,
				w = 194,
				h = 56,
				r = 30;
			if (w < 2 * r) r = w / 2;
			if (h < 2 * r) r = h / 2;
			ctx.beginPath();
			ctx.moveTo(x + r, y);
			ctx.arcTo(x + w, y, x + w, y + h, r);
			ctx.arcTo(x + w, y + h, x, y + h, r);
			ctx.arcTo(x, y + h, x, y, r);
			ctx.arcTo(x, y, x + w, y, r);
			ctx.closePath();
			//按鈕漸變色
			const grd = ctx.createLinearGradient(x, y, x + w, y)
			grd.addColorStop(0, '#FFFFFF')
			grd.addColorStop(1, '#F0ECFF')
			ctx.setFillStyle(grd)
			ctx.fill()
		
			//繪制按鈕文字
			ctx.setFillStyle('#7657ef'); // 文字顏色
			ctx.setFontSize(22); // 文字字號(hào)
			ctx.fillText('瀏覽個(gè)人資料', 158, 324); // 繪制文字
		
			ctx.draw(false, ((ret) => {
				// canvas畫布轉(zhuǎn)成圖片并返回圖片地址
				wx.canvasToTempFilePath({
					canvasId: 'shareCanvas',
					success: function(res) {
						self.canvasToTempFilePath = res.tempFilePath;
						console.log('繪制成功-------------', res.tempFilePath);
					},
					fail: function(error) {
						console.log('繪制失敗-------------', error);
					},
					complete: function() {
					}
				});
			}));
		}, 1000)});
	},
},
onShareAppMessage(res) {
	if (res.from === 'button') { // 來自頁面內(nèi)分享按鈕
		console.log('分享', res.target)
	}
	//當(dāng)canvas還未渲染完成時(shí)等待完成
	if(!this.canvasToTempFilePath){
		console.log("未渲染完成")
		setTimeout(() => {},1000)
	}
	return {
		title: '我是'+this.CustomerDetail.company+'的'+this.CustomerDetail.name,
		imageUrl: this.canvasToTempFilePath,
		path: '/pages/memberManage/memberInfo?customerId=' + this.customerId
	}
}

css這里是畫布的內(nèi)容設(shè)置文章來源地址http://www.zghlxwxcb.cn/news/detail-634261.html

.hideCanvasView{
	position: relative;
}
.shareCanvas {
	position: fixed;
	top: -99999upx;
	left: -99999upx;
	z-index: -99999;
}

到了這里,關(guān)于uniapp微信小程序使用canvas自定義分享名片的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 使用taro+canvas實(shí)現(xiàn)微信小程序的圖片分享功能

    使用taro+canvas實(shí)現(xiàn)微信小程序的圖片分享功能

    二輪充電業(yè)務(wù)中,用戶充電完成后在訂單詳情頁展示訂單相關(guān)信息,用戶點(diǎn)擊分享按鈕喚起微信小程序分享菜單,將生成的圖片海報(bào)分享給微信好友或者下載到本地,好友可通過掃描海報(bào)中的二維碼加群領(lǐng)取優(yōu)惠。 使用場景及功能:微信小程序 生成海報(bào)圖片 分享好友 下載圖

    2024年02月05日
    瀏覽(704)
  • 【uniapp】使用canvas組件編譯到微信小程序兼容出錯(cuò)問題

    【uniapp】使用canvas組件編譯到微信小程序兼容出錯(cuò)問題

    使用uniapp編譯跨平臺(tái)項(xiàng)目會(huì)遇到不少兼容問題,這里主要講canvas組件的,編譯到微信小程序會(huì)有兼容出錯(cuò)問題,這里給講一下解決方案,希望有幫助。 如果使用 CanvasContext 繪制,以下代碼,編譯到微信小程序上可能發(fā)現(xiàn)繪制不出來 看canvas組件的屬性 type=\\\"2d\\\" 是否有加,要去掉

    2024年02月02日
    瀏覽(714)
  • 在H5、微信小程序中使用canvas繪制二維碼、分享海報(bào)

    提示:繪制二維碼的插件有很多,有些僅支持H5,有些只適用微信小程序,故讀者在使用二維碼插件前需要先查看插件官方文檔,查看其支持的環(huán)境 H5中安裝qrious插件 引入qrious canvas模板 初始化canvas 二維碼繪制并渲染 微信小程序中安裝weapp-qrcode插件 引入weapp-qrcode canvas模板

    2024年02月14日
    瀏覽(87)
  • uniapp中使用canvas,在微信小程序中實(shí)現(xiàn)圖片縮放移動(dòng)涂鴉文字

    uniapp中使用canvas,在微信小程序中實(shí)現(xiàn)圖片縮放移動(dòng)涂鴉文字

    最近需要一個(gè)功能,在微信中編輯圖片,實(shí)現(xiàn)對圖片的涂鴉、加文字、縮放、移動(dòng),以下基本能實(shí)現(xiàn)該功能。 uniapp中使用畫布,實(shí)現(xiàn)圖片的編輯-批量批改圖片 1.初始化畫布圖片,圖片是網(wǎng)絡(luò)圖片,非本地圖片,所以需要先獲取圖片信息,直接使用uni.getImageInfo(如果是本地圖

    2024年04月14日
    瀏覽(123)
  • 微信小程序使用canvas畫布生成二維碼海報(bào)分享圖片(完整示例代碼)

    微信小程序使用canvas畫布生成二維碼海報(bào)分享圖片(完整示例代碼)

    canvas.js //獲取應(yīng)用實(shí)例 const app = getApp() Page({ /** 頁面的初始數(shù)據(jù) */ data: { // canvas _width: 0, //手機(jī)屏寬 _heigth: 0,//手機(jī)屏高 swiperHeight: 300,//主圖圖片高度 canvasType: false,//canvas是否顯示 loadImagePath: ‘’,//下載的圖片 imageUrl: ‘https://cos.myfaka.com/car/service/1.jpg’, //主圖網(wǎng)絡(luò)路徑 codeU

    2024年04月12日
    瀏覽(103)
  • uniapp微信小程序使用分享功能

    uniapp微信小程序使用分享功能

    實(shí)現(xiàn)效果為如下所示的小程序分享功能: 本項(xiàng)目是一個(gè)使用uniapp搭建的微信小程序,上線后點(diǎn)擊右上角的…,發(fā)現(xiàn)其中的發(fā)送給朋友和分享到朋友圈是如下圖所示的灰色不能點(diǎn)擊: 那么,如何設(shè)置微信小程序的分享功能呢? 第一步:在onLoad方法中寫wx.showShareMenu方法,設(shè)置

    2024年02月11日
    瀏覽(96)
  • 學(xué)習(xí)使用微信小程序?qū)崿F(xiàn)智能名片電子名片功能代碼

    復(fù)制到剪貼板 添加手機(jī)通訊錄聯(lián)系人。用戶可以選擇將該表單以「新增聯(lián)系人」或「添加到已有聯(lián)系人」的方式,寫入手機(jī)系統(tǒng)通訊錄。 頁面內(nèi)發(fā)起轉(zhuǎn)發(fā)。通過給 button 組件設(shè)置屬性 open-type=“share”,可以在用戶點(diǎn)擊按鈕后觸發(fā) Page.onShareAppMessage 事件,相關(guān)組件:button。

    2024年01月19日
    瀏覽(16)
  • 微信小程序使用uniapp自定義tabbar

    微信小程序使用uniapp自定義tabbar

    第一步:在pages.json里定義自己tabbar路徑,定義的時(shí)候只需要寫上頁面路徑即可 ?第二步:自定義tabbar頁面,為了實(shí)現(xiàn)點(diǎn)擊動(dòng)作的動(dòng)態(tài)效果,需要用到watch監(jiān)聽父組件傳來的值的改變 ?自定義tabbar頁面全部代碼 注:該頁面可以直接用組件的方式來放,因?yàn)閡niapp支持easycom模式,

    2024年02月13日
    瀏覽(24)
  • 微信小程序canvas繪制自適應(yīng)圖片,UniApp canvas繪制自適應(yīng)圖片

    ?需求:畫布寬高為686 * 686 的正方形(可以進(jìn)行調(diào)整根據(jù)自身需要來) ? ? ? ? ? ? 當(dāng)圖片寬度大于高度時(shí),對圖片寬度進(jìn)行裁剪 ? ? ? ? ? ? ?當(dāng)圖片高度大于寬度時(shí),對圖片高度進(jìn)行裁剪 ? ? ? ? ? ? ?我是用uniApp進(jìn)行開發(fā)的,如果是小程序原生,直接把“uni” 改為 “

    2024年02月09日
    瀏覽(106)
  • 解決uniapp微信小程序canvas不能引入字體的問題

    解決uniapp微信小程序canvas不能引入字體的問題

    這是微信小程序最近修復(fù)問題,里面有關(guān)于loadFontFace的修復(fù) 在使用前要先把調(diào)試基礎(chǔ)庫調(diào)整為 2.25.1 ,我調(diào)到這個(gè)版本就好其他的版本我也沒試 下面是我畫布導(dǎo)出的大概效果 姓名這里使用了字體,白色的輪廓是字體輪廓填充 首先要了解一個(gè)api名稱:uni.loadfontface 這里source里

    2024年02月09日
    瀏覽(96)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包