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

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

這篇具有很好參考價(jià)值的文章主要介紹了【uniapp】使用canvas組件編譯到微信小程序兼容出錯(cuò)問(wèn)題。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

使用uniapp編譯跨平臺(tái)項(xiàng)目會(huì)遇到不少兼容問(wèn)題,這里主要講canvas組件的,編譯到微信小程序會(huì)有兼容出錯(cuò)問(wèn)題,這里給講一下解決方案,希望有幫助。

常見(jiàn)問(wèn)題

draw無(wú)法繪制圖形

如果使用CanvasContext繪制,以下代碼,編譯到微信小程序上可能發(fā)現(xiàn)繪制不出來(lái)

const context = uni.createCanvasContext(canvasId,componentInstance);
//...

看canvas組件的屬性type="2d"是否有加,要去掉,因?yàn)樗?,?huì)導(dǎo)致無(wú)法繪制

<canvas canvas-id="canv" id="canv" type="2d"></canvas>

測(cè)試type="webgl"也會(huì)無(wú)法繪制

draw繪制后無(wú)回調(diào)

如果是類似以下代碼,調(diào)用draw(reserve,callback)繪制方法

draw(false, () => {
	//繪制完成后在這里執(zhí)行回調(diào)
})

調(diào)試時(shí)發(fā)現(xiàn)未執(zhí)行回調(diào)callback

這個(gè)原因未知,搜索網(wǎng)上的說(shuō)改使用以下方法看看能否解決

draw(false, setTimeout(() => {
	//這里執(zhí)行回調(diào)
	callback()
}, 258))

不建議用,編譯到其它平臺(tái)可能會(huì)報(bào)類型錯(cuò)誤

拋出錯(cuò)誤

uni.canvasToTempFilePath

這是將畫(huà)布導(dǎo)出成圖片的方法,

編譯在微信小程序上運(yùn)行報(bào)錯(cuò)內(nèi)容如下,使用uni.canvasToTempFilePath報(bào)錯(cuò)

canvasToTempFilePath:fail fail canvas is empty
canvasgetimagedata:fail fail canvas is empty,uniapp,uni-app,微信小程序,canvas,兼容,zs-canvas

這是需要多傳一個(gè)canvas,看看微信小程序的官方文檔是這樣寫(xiě)的

有個(gè)文章可以看看 canvasToTempFilePath:fail fail canvas is empty,

里面講了,組件canvas需要設(shè)置屬性type="2d"才能獲取,

而uniapp文檔上沒(méi)有說(shuō),加這個(gè)就無(wú)法繪制…

uni.canvasGetImageData

這是獲取圖像數(shù)據(jù)的方法,

編譯在微信小程序上運(yùn)行報(bào)錯(cuò)內(nèi)容如下,使用uni.canvasGetImageData也報(bào)錯(cuò)了

canvasGetImageData:fail fail canvas is empty

需要獲取到canvas元素,然后使用它的原生方法ctx.getImageData(),代碼如下

let ctx = canvas.getContext('2d');
let data = ctx.getImageData(x,y,width,height);

uni.canvasPutImageData

這是設(shè)置圖像數(shù)據(jù)的方法,

編譯在微信小程序上運(yùn)行,使用uni.canvasPutImageData也會(huì)報(bào)錯(cuò),

報(bào)錯(cuò)和上面的問(wèn)題一樣,都是沒(méi)有獲取到canvas造成的,

需要獲取到canvas元素,然后使用它的原生方法ctx.putImageData(),代碼如下

let ctx = canvas.getContext('2d');
ctx.putImageData(imageData,x,y);

組件canvas需要設(shè)置屬性type="2d"才能獲取canvas,
然后,draw()方法就無(wú)法繪制了,

這個(gè)2d屬性值有的要有的不要,該怎么辦呢,這是個(gè)兼容問(wèn)題,試試用條件編譯,

如把組件canvas加上屬性type=2d,就用以下代碼才能獲取canvas

uni.createSelectorQuery().in(this).select("#canv").fields({
	size:true,
	// #ifdef MP-WEIXIN
	node:true
	// #endif
},res=>{
	//res.node 就是 canvas 2d元素
	let canvas = res.node;
	//...
}).exec()

使用插件

可以看看這篇文章 微信小程序提示wx.createCanvasContext方法已廢棄的解決方案,

用上面講得已廢棄的解決方案重寫(xiě),繪制邏輯就按照draw()的繪制原理方法實(shí)現(xiàn)即可,

zs-canvas

使用條件編譯,把編譯到微信小程序的代碼段區(qū)分開(kāi)來(lái),

對(duì)新手來(lái)說(shuō),若覺(jué)得使用條件編譯太麻煩,可以試試uniapp項(xiàng)目的畫(huà)布插件 zs-canvas,
將插件導(dǎo)入到自定義組件文件夾中就可以用,注意細(xì)節(jié)看說(shuō)明文檔,用法與uniapp API文檔大同小異

寫(xiě)到這里,點(diǎn)贊的人在哪呢 (?■_■)
canvasgetimagedata:fail fail canvas is empty,uniapp,uni-app,微信小程序,canvas,兼容,zs-canvas文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-784611.html

到了這里,關(guān)于【uniapp】使用canvas組件編譯到微信小程序兼容出錯(cuò)問(wèn)題的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 微信小程序使用 canvas 2d 實(shí)現(xiàn)簽字板組件

    微信小程序使用 canvas 2d 實(shí)現(xiàn)簽字板組件

    本文是在微信小程序中使用 canvas 2d 來(lái)實(shí)現(xiàn)簽字板功能; 效果圖: 代碼: 1、wxml 2、js 3、總結(jié) canvas 的寬度和高度可以寫(xiě)死,也可以根據(jù)當(dāng)前可是區(qū)域動(dòng)態(tài)計(jì)算;需要注意的是 res[0].node 的寬度和高度的計(jì)算是當(dāng)前 canvas 元素上的寬度和高度乘設(shè)備的 pixelRatio ;

    2024年02月09日
    瀏覽(98)
  • uniapp運(yùn)行到微信小程序踩坑記錄

    提示TypeError: Property value expected type of string but got undefined 打包時(shí)提示以下報(bào)錯(cuò) 因?yàn)闃?biāo)簽綁定綁定一個(gè)函數(shù)的參數(shù)中傳入一個(gè)函數(shù)時(shí),不能直接加入括號(hào)傳承,不支持方法中套方法的操作, 錯(cuò)誤: 正確 應(yīng)該把參數(shù)傳入函數(shù)中以回調(diào)的形式去調(diào)用,不能直接在標(biāo)簽上嵌套 Error

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

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

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

    2024年04月14日
    瀏覽(123)
  • uniapp代碼運(yùn)行到微信小程序報(bào)unexpected character ` `

    uniapp代碼運(yùn)行到微信小程序報(bào)unexpected character ` `

    用uniapp寫(xiě)的小程序,在h5預(yù)覽正常,在小程序預(yù)覽時(shí)點(diǎn)擊按鈕發(fā)現(xiàn)導(dǎo)航欄跳到了目標(biāo)頁(yè)面,但內(nèi)容沒(méi)變,同時(shí)控制臺(tái)報(bào)目標(biāo)頁(yè)面有unexpected character 問(wèn)題 由于wxml代碼是uniapp轉(zhuǎn)換來(lái)的,很多堆積在一起,所以報(bào)錯(cuò)的wxml:2:0并不是該文件第二行。滾動(dòng)微信開(kāi)發(fā)者工具內(nèi)問(wèn)題wxml,仔細(xì)

    2024年02月11日
    瀏覽(71)
  • 關(guān)于UniApp啟動(dòng)到微信小程序工具提示找不到app.json

    關(guān)于UniApp啟動(dòng)到微信小程序工具提示找不到app.json

    第一種情況 在? uni-app ?開(kāi)發(fā)中使用? vue-cli-plugin-uni ?插件創(chuàng)建項(xiàng)目時(shí),如果出現(xiàn)找不到? app.json ?的錯(cuò)誤,可能是以下原因?qū)е碌模?項(xiàng)目根目錄下缺少? pages ?和? globalStyle ?目錄。 app.json ?文件中配置的? pages ?和? globalStyle ?字段對(duì)應(yīng)的目錄必須存在,如果不存在或者目錄

    2024年02月12日
    瀏覽(92)
  • HbuilderX運(yùn)行uniapp項(xiàng)目到微信小程序時(shí),自動(dòng)打開(kāi)了微信小程序開(kāi)發(fā)工具但是進(jìn)不去項(xiàng)目

    HbuilderX運(yùn)行uniapp項(xiàng)目到微信小程序時(shí),自動(dòng)打開(kāi)了微信小程序開(kāi)發(fā)工具但是進(jìn)不去項(xiàng)目

    這樣選擇之后,運(yùn)行時(shí)一直停在打開(kāi)微信開(kāi)發(fā)者工具不能進(jìn)入項(xiàng)目,如圖: 這是因?yàn)槟惝?dāng)前不是這個(gè)微信小程序的開(kāi)發(fā)者,聯(lián)系管理員添加你為當(dāng)前小程序的開(kāi)發(fā)者就行了。 或者是更換appid

    2024年02月11日
    瀏覽(93)
  • uniapp,微信小程序確認(rèn)收貨組件的使用

    uniapp,微信小程序確認(rèn)收貨組件的使用

    ?這里很容易誤會(huì)成,執(zhí)行success函數(shù),就收貨成功了。其實(shí)要根據(jù)返回的參數(shù)來(lái)判斷是否真的收貨成功。 微信文檔上也有說(shuō)明: ?

    2024年02月08日
    瀏覽(196)
  • 【微信小程序】解決canvas組件層級(jí)最高問(wèn)題

    1、為什么canvas組件總是會(huì)在最上層? 因?yàn)閏anvas組件是由客戶端創(chuàng)建的原生組件, 原生組件層級(jí)是最高的 ,所以頁(yè)面中的其他組件無(wú)論設(shè)置 z-index 為多少都無(wú)法蓋在原生組件上 。 2、如何解決canvas層級(jí)最高問(wèn)題?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? wx

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

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

    2024年02月09日
    瀏覽(107)
  • uniapp使用微信小程序提供的原生插件(組件)

    小程序交易保障標(biāo)展示組件 為例 參考uniapp加載插件、微信小程序加載插件 1. manifest.json: 先打開(kāi)manifest.json文件,然后我們找到\\\"mp-weixin\\\",引入需要使用的插件 2. pages.json 打開(kāi)pages.json文件,然后再對(duì)應(yīng)的頁(yè)面配置處添加?xùn)|西 3.頁(yè)面使用

    2024年02月11日
    瀏覽(96)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包