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

使用taro或react框架的,針對微信小程序隱私協(xié)議的組件封裝,網(wǎng)上找了很久都沒有相關(guān)模版,只有自己寫了一個(gè),現(xiàn)分享給有困難的同伴

這篇具有很好參考價(jià)值的文章主要介紹了使用taro或react框架的,針對微信小程序隱私協(xié)議的組件封裝,網(wǎng)上找了很久都沒有相關(guān)模版,只有自己寫了一個(gè),現(xiàn)分享給有困難的同伴。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

注意:我是使用hooks的,其他可以參考封裝思路大同小異的

首先寫一個(gè)PrivacyAgreement.js文件

import { useState, useEffect } from "react";
// Taro 額外添加的 hooks 要從 '@tarojs/taro' 中引入
import { useDidShow, useDidHide,useReady } from '@tarojs/taro'
import { View, Text, Button } from "@tarojs/components";
import { AtFloatLayout, AtButton } from "taro-ui";
import "./index.scss";
let privacyHandler
let privacyResolves = new Set()
let closeOtherPagePopUpHooks = new Set()
if (wx.onNeedPrivacyAuthorization) {
  wx.onNeedPrivacyAuthorization(resolve => {
    console.log('觸發(fā) onNeedPrivacyAuthorization')
    if (typeof privacyHandler === 'function') {
      privacyHandler(resolve)
    }
  })
}
const closeOtherPagePopUp = (closePopUp) => {
  closeOtherPagePopUpHooks.forEach(hook => {
    if (closePopUp !== hook) {
      hook()
    }
  })
}
export default ({
  showPrivacyClk
}) => {
  // 顯示和隱藏
  const [showPrivacy, setShowPrivacy] = useState(false)
  const [closePopUpCopy, setclosePopUpCopy] = useState(false)
  useEffect(() => {
    const closePopUp = () => {
      disPopUp()
    }
    console.log('closePopUp',closePopUp)
    privacyHandler = resolve => {
      console.log('3456')
      privacyResolves.add(resolve)
      popUp()
      // 額外邏輯:當(dāng)前頁面的隱私彈窗彈起的時(shí)候,關(guān)掉其他頁面的隱私彈窗
      closeOtherPagePopUp(closePopUp)
    }
    closeOtherPagePopUpHooks.add(closePopUp)
    setclosePopUpCopy(closePopUp)
  }, [])

  const disPopUp = () => {
    if (showPrivacy === true) {
      wx.showTabBar()
      setShowPrivacy(false)
    }
  }

  const popUp = () => {
    if (showPrivacy === false) {
      wx.hideTabBar()
      setShowPrivacy(true)
    }
  }
  // 打開隱私協(xié)議頁面
  const openPrivacyContractClk = () => {
    wx.openPrivacyContract()
  }
  // 用戶點(diǎn)擊拒絕隱私協(xié)議
  const refundPrivacy = () => {
    wx.showTabBar()
    disPopUp()
    privacyResolves.forEach(resolve => {
      console.log('resolve111', resolve);
      resolve({
        event: 'disagree',
      })
    })

    privacyResolves.clear()
    closeOtherPagePopUpHooks.delete(closePopUpCopy)
  }
  // 用戶點(diǎn)擊同意隱私協(xié)議
  const handleAgreePrivacyAuthorization = e => {
    // // 顯示tabbar
    wx.showTabBar()
    disPopUp()
    // 這里演示了同時(shí)調(diào)用多個(gè)wx隱私接口時(shí)要如何處理:讓隱私彈窗保持單例,點(diǎn)擊一次同意按鈕即可讓所有pending中的wx隱私接口繼續(xù)執(zhí)行 (看page/index/index中的 wx.getClipboardData 和 wx.startCompass)
    privacyResolves.forEach(resolve => {
      console.log('resolve2222', resolve);
      resolve({
        event: 'agree',
        buttonId: 'agree-btn'
      })
    })
    privacyResolves.clear()
  }
  return (
    <View>
      {
        showPrivacy ?
          (
            <View>
              <View className="privacyAgreementMask"></View>
              <View className="privacyAgreementIdx">
                在您使用小程序服務(wù)之前,請您仔細(xì)閱讀<Text onClick={openPrivacyContractClk} className="privacyTitle">《小程序隱私保護(hù)協(xié)議》</Text>
                。如您同意該隱私保護(hù)指引,請點(diǎn)擊“同意”開始使用小程序
                <View className="pivacyAgreementBtn">
                  <View className="btnLeftCon"><AtButton type='primary' full={false} onClick={refundPrivacy}>拒絕</AtButton></View>
                  <View className="btnLeftCon btnRightCon">
                    <Button id="agree-btn" class="agree" open-type="agreePrivacyAuthorization" onAgreeprivacyauthorization={handleAgreePrivacyAuthorization}>同意</Button>
                  </View>
                </View>
              </View>
            </View>
          ) : ''
      }
    </View>);
};

樣式文件index.scss如下

.privacyAgreementMask {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, .4);
  z-index: 998;
}

.privacyAgreementIdx {
  position: fixed;
  left: 0;
  bottom: 0;
  background-color: #fff;
  height: 400rpx;
  border-radius: 10rpx;
  box-sizing: border-box;
  padding: 50rpx 32rpx;
  box-shadow: 0px 2px 25px 0px rgba(189, 189, 189, 0.2);
  z-index: 999;

  .privacyTitle {
    color: skyblue;
  }

  .pivacyAgreementBtn {
    display: flex;
    justify-content: center;
    margin-top: 100rpx;

    .btnLeftCon {
      margin-right: 40rpx;

      &:last-child {
        margin-right: 0;
      }

      .at-button {
        width: 160rpx;
        height: 70rpx;
        line-height: 70rpx;
        font-size: 24rpx;
        color: #57bf6a;
        background-color: #f2f2f2;
      }

      button {
        width: 160rpx !important;
        height: 70rpx !important;
        line-height: 70rpx !important;
        font-size: 24rpx !important;
        color: #57bf6a !important;
        background-color: #f2f2f2 !important;
      }
    }

    .btnRightCon {
      .at-button {
        color: #fff;
        background-color: #57bf6a;
      }

      button {
        color: #fff !important;
        background-color: #57bf6a !important;
      }
    }
  }
}

在需要用到隱私協(xié)議的組件或者api的頁面里面引用文章來源地址http://www.zghlxwxcb.cn/news/detail-744950.html

import { useState, useEffect } from "react";
import Taro from "@tarojs/taro";
import {
  View
} from "@tarojs/components";
// 引入隱私協(xié)議組件
import PrivacyAgreement from "@/components/PrivacyAgreement.js";

export default () => {
  // 是否當(dāng)前頁面,用來解決引用隱私彈窗組件,切換我的頁面問題
  const [isPageIndex, setIsPageIndex] = useState(true);
  
  // 監(jiān)聽當(dāng)前路由變化
  useEffect(() => {
    // 獲取定位
    gotLocation()
    // 用來解決多個(gè)頁面引用隱私協(xié)議組件,來回拒絕切換導(dǎo)致隱私協(xié)議不顯示問題(沒有這個(gè)問題可以不用相關(guān)代碼)
    const unlisten = Taro.onAppRoute(res => {
      if (res.path === 'pages/index/index') {
        setIsPageIndex(true);
      } else {
        setIsPageIndex(false);
      }
    });
    return () => {
      unlisten && unlisten();
    };
  }, []);
  // 獲取到當(dāng)前位置
  const gotLocation = () => {
    wx.getLocation({
      type: "wgs84",
      success(res) {
        
      },
      fail(rs) {
        // 拒絕隱私協(xié)議
        if(rs.errno === 104)return
      },
    });
  }

  return (
    <View>
      {/* 隱私協(xié)議 */}
      {isPageIndex && <PrivacyAgreement></PrivacyAgreement>}
    </View>
  );
};

到了這里,關(guān)于使用taro或react框架的,針對微信小程序隱私協(xié)議的組件封裝,網(wǎng)上找了很久都沒有相關(guān)模版,只有自己寫了一個(gè),現(xiàn)分享給有困難的同伴的文章就介紹完了。如果您還想了解更多內(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框架實(shí)際開發(fā)中的問題匯總

    微信小程序--Taro框架實(shí)際開發(fā)中的問題匯總

    前言:微信小程序相信大家都不陌生,目前小程序開發(fā)主流的框架有微信 原生開發(fā) , uni-app ,以及今天的重點(diǎn) Taro 。編者自身小程序開發(fā)經(jīng)驗(yàn)也不多,僅針對自身在小程序開發(fā)中的問題做一次匯總,望更多像我一樣的小白少走 一點(diǎn)彎路。 注意:本篇博客中小程序開發(fā)基于

    2024年02月16日
    瀏覽(21)
  • 基于 Taro 框架的微信小程序 canvas 繪圖海報(bào)組件

    基于 Taro 框架的微信小程序 canvas 繪圖海報(bào)組件

    項(xiàng)目需要保存收款碼,效果如圖: (此文僅代表個(gè)人日常工作記錄,能力有限描述并不全面) 1.安裝 npm i taro-plugin-canvas -S --production(taro-plugin-canvas 是基于 Taro 框架的微信小程序 canvas 繪圖組件,封裝了常用的操作,通過配置的方式生成分享圖片) ?2.引入:import?{?TaroCanvas

    2024年01月21日
    瀏覽(95)
  • 【taro react】---- 解決開發(fā)環(huán)境微信小程序由于主包體積過大不能預(yù)覽問題

    【taro react】---- 解決開發(fā)環(huán)境微信小程序由于主包體積過大不能預(yù)覽問題

    1. 開發(fā)環(huán)境代碼包大小 注意:可以看到此時(shí)主包加分包將近 5MB,上傳預(yù)覽將會(huì)超出限制?。。?2. 預(yù)覽結(jié)果 報(bào)錯(cuò):代碼包大小超過限制,主包資源近3MB,限制最大2MB?。?! 3. 解決辦法 使用webpack的壓縮插件,在開發(fā)環(huán)境編譯的時(shí)候進(jìn)行壓縮; 進(jìn)行分包處理,同時(shí)依賴也進(jìn)行

    2024年02月10日
    瀏覽(36)
  • taro+vue3 搭建一套框架,適用于微信小程序和H5

    安裝 Taro。可以在終端輸入以下命令進(jìn)行安裝: 創(chuàng)建項(xiàng)目。使用以下命令創(chuàng)建 Taro+Vue3 項(xiàng)目: 其中,myApp 是項(xiàng)目名稱。 進(jìn)入項(xiàng)目并啟動(dòng)。使用以下命令進(jìn)入項(xiàng)目并啟動(dòng): 注意,需要先進(jìn)入對應(yīng)的目錄再啟動(dòng)。 編寫代碼。在 src 目錄下編寫代碼,可以像使用 Vue 開發(fā) Web 應(yīng)用程

    2024年02月10日
    瀏覽(75)
  • 【taro react】---- 解決 iOS 真機(jī)微信小程序 Input 密碼框 type 切換會(huì)導(dǎo)致 Input 內(nèi)容丟失問題

    1. 問題場景 在密碼登陸時(shí),有顯示和隱藏密碼的功能,實(shí)現(xiàn)方式很簡單,直接對輸入 input 的 type 進(jìn)行 password 和 text 值進(jìn)行切換,就可以實(shí)現(xiàn)密碼的顯示和隱藏。 2. 實(shí)現(xiàn)代碼 通過修改 input 的 type 值實(shí)現(xiàn)密碼的顯示和隱藏。 密碼的顯示和隱藏控制圖標(biāo)也是通過 type 值進(jìn)行判斷

    2024年02月03日
    瀏覽(20)
  • 基于Taro + React 實(shí)現(xiàn)微信小程序半圓滑塊組件、半圓進(jìn)度條、弧形進(jìn)度條、半圓滑行軌道(附源碼)

    基于Taro + React 實(shí)現(xiàn)微信小程序半圓滑塊組件、半圓進(jìn)度條、弧形進(jìn)度條、半圓滑行軌道(附源碼)

    1、四個(gè)檔位 2、可點(diǎn)擊加減切換檔位 3、可以點(diǎn)擊區(qū)域切換檔位 4、可以滑動(dòng)切換檔位 給大家提供一些實(shí)現(xiàn)思路,找了一圈,一些文章基本不能直接用,錯(cuò)漏百出,代碼還藏著掖著,希望可以幫到大家 ts的寫法風(fēng)格 index.tsx? ? ? index.module.less 防抖的工具函數(shù)debounce 的詳細(xì)代碼

    2024年02月06日
    瀏覽(57)
  • 微信小程序+Taro 混編,Taro 使用微信原生 behaviors

    最近有一個(gè)小程序項(xiàng)目,因?yàn)橐恍┰蝽?xiàng)目架構(gòu)選擇了微信小程序原生+Taro 混編的方式進(jìn)行開發(fā),在開發(fā)的過程中發(fā)現(xiàn) Taro 不支持使用原生的 behaviors 特性,因?yàn)榛炀幍脑蝽?xiàng)目當(dāng)中已有原生頁面在使用 behaviors,所以需要一個(gè)方案在不影響其他頁面的基礎(chǔ)上使 Taro 也能使用這

    2024年02月11日
    瀏覽(23)
  • 使用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--- 微信小程序 用戶隱私新規(guī)相關(guān)代碼調(diào)整【vue3+ts+uView框架】

    uniapp--- 微信小程序 用戶隱私新規(guī)相關(guān)代碼調(diào)整【vue3+ts+uView框架】

    官方公告地址:https://developers.weixin.qq.com/community/develop/doc/00042e3ef54940ce8520e38db61801 用戶隱私保護(hù)指引填寫說明地址:https://developers.weixin.qq.com/miniprogram/dev/framework/user-privacy/ 1) 需要在9月15前更新完畢,否則會(huì)無法使用獲取手機(jī)號 手機(jī)相冊等相關(guān)信息。 2) 微信小程序開發(fā)工具

    2024年02月09日
    瀏覽(30)
  • Taro + React + TS + Taro-UI + ECharts + Markdown 開發(fā)微信小程序

    Taro + React + TS + Taro-UI + ECharts + Markdown 開發(fā)微信小程序

    1、安裝 Taro 腳手架工具 npm install -g @tarojs/cli yarn global add @tarojs/cli 2、taro 初始化項(xiàng)目 taro init taro-app 安裝 taro-ui cd taro-app yarn add taro-ui 全局引入taro-ui樣式 3、項(xiàng)目路由路徑 page 對應(yīng)項(xiàng)目路徑 lazyCodeLoading 組件按需注入 Taro.navigateTo({url: xxx}) 小程序內(nèi)部跳轉(zhuǎn) 4、全局添加分享功能

    2024年02月04日
    瀏覽(19)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包