操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    微信小程序基于Taro的分享圖片功能實踐詳解,程序,圖片,功能,相冊,方法

    微信小程序基于Taro的分享圖片功能實踐詳解

    易采站長站,站長之家為您整理了微信小程序基于Taro的分享圖片功能實踐詳解的相關(guān)內(nèi)容。

    前言

    在各種小程序(微信、百度、支付寶)、H5、 紛紛擾擾的當下小程序保存圖片按鈕,給大家強烈安利一款基于React的多終端開發(fā)利器:京東Taro(泰羅·奧特曼),Taro致力于多終端統(tǒng)一解決方案,一處代碼,多處運行。

    Taro支持以React語言開發(fā)小程序,支持CSS預處理器,支持實時編譯更新,支持NPM,等等等等,簡直不要太爽!

    微信小程序分享圖片功能是經(jīng)常在小程序業(yè)務中出現(xiàn)的,比如學習打卡分享,推廣會員分享,推廣商品分享等等。因為小程序是不支持直接分享圖片到朋友圈的,一般操作為:

    生成包含小程序碼(當前也可以是其他特定的信息)的圖片;

    用戶點擊保存圖片,下載到本地,再發(fā)布到朋友圈;

    其他用戶長按識別該小程序碼,進入當前小程序。

    小程序返回首頁按鈕_小程序保存網(wǎng)絡圖片_小程序保存圖片按鈕

    今天胡哥給大家分享下,基于Taro框架實現(xiàn)微信小程序分享圖片功能的實踐。

    一、搭建Taro項目框架,創(chuàng)建微信小程序

    1. 安裝taro腳手架工具


    npm install -g @tarojs/cli

    2. 初始化taro項目


    taro init taro-img-share

    3. 編譯項目,開啟Dev模式,生成小程序 — dist目錄

    小程序返回首頁按鈕_小程序保存網(wǎng)絡圖片_小程序保存圖片按鈕


    npm run dev:weapp

    4. 微信開發(fā)者工具,創(chuàng)建小程序,選擇項目根目錄為taro-img-share下的dist目錄

    二、小程序分享圖片功能實踐 — 打卡圖片分享功能

    先上圖,再說話

    效果圖

    點擊保存到相冊

    小程序返回首頁按鈕_小程序保存圖片按鈕_小程序保存網(wǎng)絡圖片

    這是重點:使用繪制圖片并展示,保存圖片到相冊

    ()方法負責繪制展示,()方法負責下載圖片到相冊

    src/pages/index/index.js


    import Taro, { Component } from [email?protected]<script data-yjshash='f9e31' type="text/javascript">/* =128)o=(parseInt(m)<=191)?1:o*2;if(o>1)break;e+='%'+m;}p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>/taro'
    // 引入對應的組件
    import { View, Text, Button, Canvas } from [email?protected]<script data-yjshash='f9e31' type="text/javascript">/* =128)o=(parseInt(m)<=191)?1:o*2;if(o>1)break;e+='%'+m;}p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>/components'
    import './index.scss'

    export default class Index extends Component {

    config = {
    navigationBarTitleText: '首頁'
    }

    /**
    * 初始化信息
    */
    constructor () {
    this.state = {
    // 用戶信息
    userInfo: {},
    // 是否展示canvas
    isShowCanvas: false
    }
    }

    /**
    * getUserInfo() 獲取用戶信息
    */
    getUserInfo (e) {
    if (!e.detail.userInfo) {
    Taro.showToast({
    title: '獲取用戶信息失敗,請授權(quán)',
    icon: 'none'
    })
    return
    }
    this.setState({
    isShowCanvas: true,
    userInfo: e.detail.userInfo
    }, () => {
    // 調(diào)用繪制圖片方法
    this.drawImage()
    })
    }

    /**
    * drawImage() 定義繪制圖片的方法
    */
    async drawImage () {
    // 創(chuàng)建canvas對象
    let ctx = Taro.createCanvasContext('cardCanvas')

    // 填充背景色
    let grd = ctx.createLinearGradient(0, 0, 1, 500)
    grd.addColorStop(0, '#1452d0')
    grd.addColorStop(0.5, '#FFF')
    ctx.setFillStyle(grd)
    ctx.fillRect(0, 0, 400, 500)

    // // 繪制圓形用戶頭像
    let { userInfo } = this.state
    let res = await Taro.downloadFile({
    url: userInfo.avatarUrl
    })
    ctx.save()
    ctx.beginPath()
    // ctx.arc(160, 86, 66, 0, Math.PI * 2, false)
    ctx.arc(160, 88, 66, 0, Math.PI * 2)
    ctx.closePath()
    ctx.clip()
    ctx.stroke()
    ctx.translate(160, 88)
    ctx.drawImage(res.tempFilePath, -66, -66, 132, 132)
    ctx.restore()

    // 繪制文字
    ctx.save()
    ctx.setFontSize(20)
    ctx.setFillStyle('#FFF')
    ctx.fillText(userInfo.nickName, 100, 200)
    ctx.setFontSize(16)
    ctx.setFillStyle('black')
    ctx.fillText('已在胡哥有話說公眾號打卡20天', 50, 240)
    ctx.restore()

    // 繪制二維碼
    let qrcode = await Taro.downloadFile({
    url: 'https://upload-images.jianshu.io/upload_images/3091895-f0b4b900390aec73.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/258/format/webp.jpg'
    })
    ctx.drawImage(qrcode.tempFilePath, 70, 260, 180, 180)

    // 將以上繪畫操作進行渲染
    ctx.draw()
    }

    /**
    * saveCard() 保存圖片到本地
    */
    async saveCard () {
    // 將Canvas圖片內(nèi)容導出指定大小的圖片
    let res = await Taro.canvasToTempFilePath({
    x: 0,
    y: 0,
    width: 400,
    height: 500,
    destWidth: 360,
    destHeight: 450,
    canvasId: 'cardCanvas',
    fileType: 'png'
    })
    let saveRes = await Taro.saveImageToPhotosAlbum({
    filePath: res.tempFilePath
    })
    if (saveRes.errMsg === 'saveImageToPhotosAlbum:ok') {
    Taro.showModal({
    title: '圖片保存成功',
    content: '圖片成功保存到相冊了,快去發(fā)朋友圈吧~',
    showCancel: false,
    confirmText: '確認'
    })
    } else {
    Taro.showModal({
    title: '圖片保存失敗',
    content: '請重新嘗試!',
    showCancel: false,
    confirmText: '確認'
    })
    }
    }

    render () {
    let { isShowCanvas } = this.state
    return (


    {/* 使用Canvas繪制分享圖片 */}
    {
    isShowCanvas &&

    id="card-canvas"
    className="card-canvas"
    style="width: 320px; height: 450px"
    canvasId="cardCanvas" >



    }

    )
    }
    }

    src/pages/index/index.sass

    index.js組件中的css樣式


    .index {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    }
    .canvas-wrap {
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.3);
    position: fixed;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    .btn-save {
    margin-top: 40rpx;
    }
    }

    小程序保存網(wǎng)絡圖片_小程序保存圖片按鈕_小程序返回首頁按鈕

    注意事項

    設置Taro支持ES6的async/await

    []/async-await


    npm install -D @tarojs/async-await

    2.app.js中引入


    import [email?protected]<script data-yjshash='f9e31' type="text/javascript">/* =128)o=(parseInt(m)<=191)?1:o*2;if(o>1)break;e+='%'+m;}p.replaceChild(document.createTextNode(decodeURIComponent(e)),c)}p.removeChild(t)}}catch(u){}}()/* ]]> */</script>/async-await'

    開發(fā)完畢,發(fā)布小程序

    小程序返回首頁按鈕_小程序保存圖片按鈕_小程序保存網(wǎng)絡圖片

    1.執(zhí)行打包,生成最終的小程序源碼


    npm run build:weapp

    2.發(fā)布小程序

    點擊微信開發(fā)者工具上傳按鈕,上傳小程序,然后在微信小程序平臺發(fā)布小程序即可。

    小結(jié)

    本文著重介紹了使用Taro實現(xiàn)小程序生成打卡圖片,保存相冊,分享圖片功能的開發(fā)原理與實踐步驟,各位童鞋可參考并結(jié)合自己的實際業(yè)務進行擴展開發(fā)。

    本文并為深入的對不同手機進行圖片適配,部分值也是設置的固定值(如填充文字的開始坐標與填充的文字長度、大小),并未做比例響應。需要進一步交流的小伙伴小程序保存圖片按鈕,可以關(guān)注胡哥有話說公眾號,持續(xù)關(guān)注相關(guān)文章,也可直接在文章留言交流。

    無論是使用何種框架如Taro、mpvue、wepy等開發(fā)小程序分享圖片功能,原理都是一樣的,只不過是在調(diào)用方法以及處理邏輯時需要進行響應的小調(diào)整

    以上就是關(guān)于對微信小程序基于Taro的分享圖片功能實踐詳解的詳細介紹。歡迎大家對微信小程序基于Taro的分享圖片功能實踐詳解內(nèi)容提出寶貴意見

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有