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

微信小程序隱私協(xié)議接入

這篇具有很好參考價(jià)值的文章主要介紹了微信小程序隱私協(xié)議接入。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

?2023.09.14更新:

  1. 隱私相關(guān)功能啟用時(shí)間延期至 2023年10月17日。在 2023年10月17日之前,在 app.json 中配置 __usePrivacyCheck__: true 后,會(huì)啟用隱私相關(guān)功能,如果不配置或者配置為 false 則不會(huì)啟用。在 2023年10月17日之后,不論 app.json 中是否有配置 __usePrivacyCheck__,隱私相關(guān)功能都會(huì)啟用。

  2. 新增官方隱私授權(quán)彈窗功能,相關(guān)功能參考官方隱私彈窗功能說(shuō)明。此功能目前仍在開發(fā)階段,開發(fā)者目前可以先閱讀本指南文檔和接口文檔進(jìn)行理解,平臺(tái)將會(huì)盡快正式上線相關(guān)能力,上線后會(huì)在本指南文檔中進(jìn)行說(shuō)明。

解讀:調(diào)用相關(guān)接口,如果需要彈出隱私協(xié)議,微信會(huì)檢查開發(fā)者是否實(shí)現(xiàn)了wx.onNeedPrivacyAuthorization,實(shí)現(xiàn)的話,由開發(fā)者的實(shí)現(xiàn)接管后續(xù)流程。否則,微信會(huì)自己彈出隱私協(xié)議窗口。如果用戶同意,相關(guān)接口后續(xù)會(huì)走成功回調(diào),否則走失敗回調(diào)。官方隱私彈窗會(huì)有一些優(yōu)化,10秒內(nèi)不會(huì)重復(fù)彈出,而是直接接口失敗,錯(cuò)誤碼為 103。鑒于可能和其他彈出共存或獨(dú)自存在,官方隱私彈窗將有兩種樣式,不過(guò)不需要開發(fā)者關(guān)注。綜上所述,開發(fā)者可以自己處理隱私協(xié)議查看要求,也可以不做任何處理,或者在接口調(diào)用出現(xiàn)103時(shí)候,做一些特別的提示即可。

自2023年9月15日起,對(duì)于涉及處理用戶個(gè)人信息的小程序開發(fā)者,微信要求,僅當(dāng)開發(fā)者主動(dòng)向平臺(tái)同步用戶已閱讀并同意了小程序的隱私保護(hù)指引等信息處理規(guī)則后,方可調(diào)用微信提供的隱私接口。

相關(guān)公告見:關(guān)于小程序隱私保護(hù)指引設(shè)置的公告 | 微信開放社區(qū)

公告里已經(jīng)介紹了相關(guān)流程,具體可以參考小程序隱私協(xié)議開發(fā)指南 | 微信開放文檔。這里不再贅述。下面我們將著重談一下代碼實(shí)現(xiàn)。

觸發(fā)式隱私協(xié)議

首先,我們要知道的一點(diǎn)是如果用戶沒(méi)有同意過(guò)隱私協(xié)議,調(diào)用某些API(具體參看:小程序用戶隱私保護(hù)指引內(nèi)容介紹 | 微信開放文檔)是會(huì)觸發(fā)隱私協(xié)議彈窗的,這種叫觸發(fā)式隱私協(xié)議。如果用戶同意,這個(gè)API調(diào)用還能繼續(xù)執(zhí)行,否則就會(huì)報(bào)失敗。所以我們要做的是在這個(gè)時(shí)候,在當(dāng)前頁(yè)面彈出我們自定義的隱私協(xié)議alert,并且接收resolve。然后在用戶同意和拒絕的時(shí)候調(diào)用這個(gè)resolve。具體代碼如下:

// page.wxml
<view wx:if="{{showPrivacy}}">
  <view>隱私彈窗內(nèi)容....</view>
  <button id="agree-btn" open-type="agreePrivacyAuthorization" bindagreeprivacyauthorization="handleAgreePrivacyAuthorization">同意</button>
</view>
// page.js
Page({
  data: {
    showPrivacy: false
  },
  onLoad() {
    wx.onNeedPrivacyAuthorization(resolve => {
      // 需要用戶同意隱私授權(quán)時(shí)
      // 彈出開發(fā)者自定義的隱私授權(quán)彈窗
      this.setData({
        showPrivacy: true
      })
      this.resolvePrivacyAuthorization = resolve
    })

    wx.getUserProfile({
      success: console.log,
      fail: console.error
    })
  },
  handleAgreePrivacyAuthorization() {
    // 用戶點(diǎn)擊同意按鈕后
    this.resolvePrivacyAuthorization({ buttonId: 'agree-btn', event: 'agree' })
    // 用戶點(diǎn)擊同意后,開發(fā)者調(diào)用 resolve({ buttonId: 'agree-btn', event: 'agree' })  告知平臺(tái)用戶已經(jīng)同意,參數(shù)傳同意按鈕的id。為確保用戶有同意的操作,基礎(chǔ)庫(kù)在 resolve 被調(diào)用后,會(huì)去檢查對(duì)應(yīng)的同意按鈕有沒(méi)有被點(diǎn)擊過(guò)。檢查通過(guò)后,相關(guān)隱私接口會(huì)繼續(xù)調(diào)用
    // 用戶點(diǎn)擊拒絕后,開發(fā)者調(diào)用 resolve({ event:'disagree' }) 告知平臺(tái)用戶已經(jīng)拒絕
  }
})

?這里同意的按鈕必須使用系統(tǒng)提供的這個(gè)寫法,需要指定一個(gè)id和回調(diào)方法。拒絕的按鈕沒(méi)有什么要求。這里務(wù)必要保存resolve,并且在同意和拒絕中調(diào)用它,否則觸發(fā)隱私協(xié)議的API的成功和失敗回調(diào)就不會(huì)走。這里有個(gè)問(wèn)題,可能多個(gè)頁(yè)面都有API會(huì)觸發(fā),但是onNeedPrivacyAuthorization只能注冊(cè)一個(gè),前面注冊(cè)的會(huì)被后面的覆蓋。所以,如果把注冊(cè)方法寫在load里可能造成,頁(yè)面回來(lái)的時(shí)候就不會(huì)觸發(fā)了。因此建議這個(gè)注冊(cè)放在show的時(shí)候注冊(cè)。關(guān)于這個(gè)API的更多內(nèi)容可以查看:wx.onNeedPrivacyAuthorization(function listener) | 微信開放文檔

隱私協(xié)議的彈窗是我們自定義的,里面的文本建議根據(jù)官方的例子來(lái)寫,要獲取指引的名字,可以通過(guò)wx.getPrivacySetting這個(gè)API。點(diǎn)擊指引前往查看隱私協(xié)議的頁(yè)面,可以我們自己寫,也可以用微信官方提供的頁(yè)面,只需要調(diào)用接口wx.openPrivacyContract就行。注意,閱讀隱私協(xié)議不是必須的,所以你可以強(qiáng)制要求用戶前往閱讀,也可以什么都不做。

主動(dòng)式隱私協(xié)議

前面我們講的觸發(fā)式隱私協(xié)議,相對(duì)比較麻煩,要去找到這些敏感接口調(diào)用的頁(yè)面,然后全都處理一下。還有一種是主動(dòng)式隱私協(xié)議。主動(dòng)式隱私協(xié)議,就是你在關(guān)鍵入口,主動(dòng)彈出這個(gè)協(xié)議窗口,讓用戶去同意或者拒絕。這時(shí)候就沒(méi)有resolve了。但是這樣做有個(gè)問(wèn)題,如果用戶點(diǎn)了同意,那么后續(xù)這些API都會(huì)調(diào)用成功,用戶和開發(fā)者都很高興。但是萬(wàn)一用戶拒絕,如果你沒(méi)有注冊(cè)onNeedPrivacyAuthorization并進(jìn)行適當(dāng)處理,那后續(xù)調(diào)用都會(huì)失敗。這時(shí)候偷懶的做法是,用戶拒絕后就退出小程序,但是這種做法體驗(yàn)不佳。我們應(yīng)該盡量讓用戶能使用其他功能,畢竟這些涉及的API可能我們并不太關(guān)心,譬如說(shuō)用戶只是不能上傳下載圖片,而這些并非我們小程序的核心功能。

組件實(shí)現(xiàn)

從用戶體驗(yàn)上來(lái)講,對(duì)于使用相關(guān)API比較多的小程序,為了避免遺漏和一些特殊場(chǎng)景,建議在入口主動(dòng)彈出隱私協(xié)議。對(duì)于用量較少的小程序,可以采用觸發(fā)式隱私協(xié)議。無(wú)論我們采取何種做法,我們都將其封裝為一個(gè)組件。

UI部分沒(méi)有什么特別的,我們找個(gè)寫好的,類似微信風(fēng)格的實(shí)現(xiàn):

小程序隱私協(xié)議,微信小程序,小程序

?相關(guān)頁(yè)面代碼:

<view class="privacy" wx:if="{{showPrivacy}}">
    <view class="content">
        <view class="title">隱私保護(hù)指引</view>
        <view class="des">
            在使用當(dāng)前小程序服務(wù)之前,請(qǐng)仔細(xì)閱讀<text class="link" bind:tap="openPrivacyContract">{{privacyContractName}}</text>。如你同意{{privacyContractName}},請(qǐng)點(diǎn)擊“同意”開始使用。
        </view>
        <view class="btns">
            <button class="item reject" bind:tap="refusePrivacy">拒絕</button>
            <button id="agree-btn" class="item agree" open-type="agreePrivacyAuthorization" bindagreeprivacyauthorization="handleAgreePrivacyAuthorization">同意</button>
        </view>
    </view>
</view>
.privacy {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background: rgba(0, 0, 0, .5);
  z-index: 9999999;
  display: flex;
  align-items: center;
  justify-content: center;
}

.content {
  width: 632rpx;
  padding: 48rpx;
  box-sizing: border-box;
  background: #fff;
  border-radius: 16rpx;
}

.content .title {
  text-align: center;
  color: #333;
  font-weight: bold;
  font-size: 32rpx;
}

.content .des {
  font-size: 26rpx;
  color: #666;
  margin-top: 40rpx;
  text-align: justify;
  line-height: 1.6;
}

.content .des .link {
  color: #07c160;
  text-decoration: underline;
}

.btns {
  margin-top: 48rpx;
  display: flex;
}

.btns .item {
  justify-content: space-between;
  width: 244rpx;
  height: 80rpx;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 16rpx;
  box-sizing: border-box;
  border: none;
}

.btns .reject {
  background: #f4f4f5;
  color: #909399;
}

.btns .agree {
  background: #07c160;
  color: #fff;
}

在組件實(shí)現(xiàn)里,我們聲明了三個(gè)屬性,forceShow用于主動(dòng)式隱私協(xié)議,設(shè)置true的時(shí)候可以強(qiáng)制顯示。false的時(shí)候,則組件顯示由注冊(cè)回調(diào)觸發(fā),是觸發(fā)式隱式協(xié)議。forceRead控制用戶是否需要強(qiáng)制閱讀協(xié)議。exitOnRefuse指當(dāng)用戶拒絕的時(shí)候,是否需要強(qiáng)制退出小程序。我們?cè)陧?yè)面show的時(shí)候,注冊(cè)隱私協(xié)議觸發(fā)回調(diào),調(diào)用getPrivacySetting獲取協(xié)議的名稱。這里用到了組件的pageLifetimes。后面就是實(shí)現(xiàn)打開協(xié)議,同意和拒絕的回調(diào)。同意和拒絕的回調(diào)里,我們要判斷是否保存了resolve,有的話是觸發(fā)式的,需要進(jìn)行調(diào)用,調(diào)用完了立刻將其清空。因?yàn)槲覀兡軈^(qū)分這兩種隱私協(xié)議,因此我們?cè)诰芙^的時(shí)候,顯示了不同的錯(cuò)誤提示:對(duì)于主動(dòng)式的,我們就說(shuō)部分功能不可用。對(duì)于觸發(fā)式的,我們就說(shuō)該功能不可用。

完整的js代碼如下:

Component({
  options: {
    pureDataPattern: /^_/ // 指定所有 _ 開頭的數(shù)據(jù)字段為純數(shù)據(jù)字段
  },
  /**
   * 組件的屬性列表
   */
  properties: {
    forceShow: {
      type: Boolean,
      value: false
    },
    forceRead: {
      type: Boolean,
      value: false
    },
    exitOnRefuse: {
      type: Boolean,
      value: false
    }
  },

  /**
   * 組件的初始數(shù)據(jù)
   */
  data: {
    privacyContractName: '',
    showPrivacy: false,
    _isRead: false
  },
  /**
   * 組件的生命周期
   */
  pageLifetimes: {
    show() {
      const that = this
      wx.onNeedPrivacyAuthorization(resolve => {
        that.resolvePrivacyAuthorization = resolve
        that.setData({
          showPrivacy: true
        })
      })
      wx.getPrivacySetting({
        success(res) {
          that.setData({
            privacyContractName: res.privacyContractName,
            //僅在需要授權(quán)的時(shí)候才顯示,處理多個(gè)tab切換每個(gè)頁(yè)面都顯示的問(wèn)題
            showPrivacy: that.data.forceShow && res.needAuthorization
          })
        }
      })
    }
  },
  /**
   * 組件的方法列表
   */
  methods: {
    // 打開隱私協(xié)議頁(yè)面
    openPrivacyContract() {
      const that = this
      wx.openPrivacyContract({
        success: () => {
          that.setData({
            _isRead: true
          })
        },
        fail: () => {
          wx.showToast({
            title: '指引打開失敗',
            icon: 'error'
          })
        }
      })
    },
    // 拒絕隱私協(xié)議
    refusePrivacy() {
      if(this.data.exitOnRefuse){
        // 直接退出小程序
        wx.exitMiniProgram()
        return
      }
      let tips = ""
      if (this.resolvePrivacyAuthorization) {
        this.resolvePrivacyAuthorization({
          event: 'disagree'
        })
        this.resolvePrivacyAuthorization = null
        tips = '該功能不可用'
      } else {
        tips = '部分功能不可用'
      }
      this.setData({
        showPrivacy: false
      })
      wx.showToast({
        title: tips,
        icon: 'error'
      })
    },
    // 同意隱私協(xié)議
    handleAgreePrivacyAuthorization() {
      const {
        _isRead,
        forceRead
      } = this.data
      if (_isRead || !forceRead) {
        if (this.resolvePrivacyAuthorization) {
          this.resolvePrivacyAuthorization({
            buttonId: 'agree-btn',
            event: 'agree'
          })
          this.resolvePrivacyAuthorization = null
        }
        this.setData({
          showPrivacy: false
        })
      } else {
        wx.showToast({
          title: '請(qǐng)先閱讀指引',
          icon: 'error'
        })
      }
    },
  },

  observers: {
    "forceShow": function (forceShow) {
      this.setData({
        showPrivacy: forceShow
      })
    }
  }
})

整個(gè)組件的使用非常簡(jiǎn)單,只需要在相關(guān)頁(yè)面的json文件里引入。如果涉及的頁(yè)面較多的話,也可以在小程序全局組件配置里引入:

{

  "usingComponents": {
    "Privacy": "/components/privacy/privacy"
  }
}

以及在所有相關(guān)wxml里引入:

<Privacy/>

這里效果圖和部分代碼參考了:GitHub - 94xy/miniprogram-privacy: 小程序用戶隱私保護(hù)授權(quán)彈窗組件表示感謝。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-712632.html

到了這里,關(guān)于微信小程序隱私協(xié)議接入的文章就介紹完了。如果您還想了解更多內(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)文章

  • 微信小程序添加用戶授權(quán)《隱私保護(hù)協(xié)議》

    微信小程序添加用戶授權(quán)《隱私保護(hù)協(xié)議》

    官方文檔:wx.onNeedPrivacyAuthorization(function listener) | 微信開放文檔 微信小程序平臺(tái)上需要進(jìn)行隱私配置,審核成功后 大概半小時(shí)左右 才會(huì)生效。 小程序公眾平臺(tái) --- 設(shè)置 --- 服務(wù)內(nèi)容聲明 --- 用戶隱私保護(hù)指引(提交審核時(shí),也會(huì)檢測(cè)是否采集用戶隱私,有用到隱私接口的話需

    2024年02月08日
    瀏覽(27)
  • 微信小程序提交審核用戶隱私協(xié)議怎么寫?

    今天給大家出個(gè)隱私協(xié)議的模板供大家參考,內(nèi)容如下: 為了分辨用戶,開發(fā)者將在獲取你的明示同意后,收集你的微信昵稱、頭像 為了顯示距離,開發(fā)者將在獲取你的明示同意后,收集你的位置信息。 開發(fā)者收集你的地址,用于獲取位置信息。 開發(fā)者收集你的發(fā)票信息,

    2024年02月06日
    瀏覽(31)
  • uniapp 微信小程序之隱私協(xié)議開發(fā)

    uniapp 微信小程序之隱私協(xié)議開發(fā)

    官網(wǎng)通知:https://developers.weixin.qq.com/miniprogram/dev/framework/user-privacy/PrivacyAuthorize.html 1、配置 __usePrivacyCheck__: true ;位置 manifest.json : 2、用戶隱私保護(hù)指引中添加對(duì)應(yīng)的權(quán)限,提交審核,位置:微信公眾平臺(tái)-設(shè)置-服務(wù)內(nèi)容聲明-用戶隱私保護(hù)指引-更新 3、自定義彈框

    2024年02月05日
    瀏覽(25)
  • 微信小程序隱私協(xié)議相關(guān)接口實(shí)際使用方式

    頁(yè)面加載時(shí)自動(dòng)彈窗,同意后可以使用對(duì)應(yīng)功能,不同意退出頁(yè)面或者隱藏相關(guān)功能。 這種情況下,需要在onLoad里使用wx.getPrivacySetting獲取隱私授權(quán)情況,沒(méi)授權(quán)時(shí)彈出隱私彈窗。完整代碼如下 在使用到隱私接口時(shí)彈出隱私彈窗,同時(shí)隱私接口的流程會(huì)被掛起,用戶同意后會(huì)

    2024年02月09日
    瀏覽(22)
  • uniapp新版微信小程序用戶隱私協(xié)議授權(quán)

    manifest.json文件中進(jìn)行配置 App.vue中配置 判斷用戶有沒(méi)有進(jìn)行過(guò)隱私授權(quán) 編寫組件 使用組件

    2024年02月09日
    瀏覽(32)
  • uniapp實(shí)現(xiàn)微信小程序隱私協(xié)議組件封裝

    uniapp實(shí)現(xiàn)微信小程序隱私協(xié)議組件封裝

    uniapp實(shí)現(xiàn)微信小程序隱私協(xié)議組件封裝。 隱私協(xié)議封裝組件后快速調(diào)用。 diy-privacy/diy-privacy

    2024年02月07日
    瀏覽(24)
  • 微信小程序登陸賬號(hào)驗(yàn)證隱私協(xié)議驗(yàn)證頁(yè)面及代碼

    微信小程序登陸賬號(hào)驗(yàn)證隱私協(xié)議驗(yàn)證頁(yè)面及代碼

    微信小程序登陸頁(yè),頁(yè)面主要是需要校驗(yàn)賬號(hào)手機(jī)號(hào),驗(yàn)證勾選同意使用協(xié)議和隱私政策,效果如下 忘記密碼,bindtap=‘findPassword’,是綁定事件,點(diǎn)擊進(jìn)入找回密碼方法 wx:if=“{{!checked==false}}”,這里是用來(lái)判斷是否選中底部隱私協(xié)議,如果是未選中狀態(tài)下,bindtap=“handl

    2024年02月09日
    瀏覽(26)
  • uniapp微信小程序《隱私保護(hù)協(xié)議》彈窗處理流程

    uniapp微信小程序《隱私保護(hù)協(xié)議》彈窗處理流程

    背景 《關(guān)于小程序隱私保護(hù)指引設(shè)置的公告》 《小程序隱私協(xié)議開發(fā)指南》 流程 1.第一步 必須設(shè)置且審核通過(guò)!?。?2.第二步 uniapp在manifest.json中添加?。。?很多人前兩步?jīng)]做或者做的不對(duì),導(dǎo)致出現(xiàn)needAuthorization一直為false情況 3.第三步 此處需要根據(jù)情況決定,在何時(shí)彈

    2024年02月08日
    瀏覽(24)
  • 微信小程序新版隱私協(xié)議彈窗實(shí)現(xiàn)最新版

    微信小程序新版隱私協(xié)議彈窗實(shí)現(xiàn)最新版

    2023.08.22更新:【原文連接】 以下指南中涉及的 getPrivacySetting、onNeedPrivacyAuthorization、requirePrivacyAuthorize 等接口目前可以正常接入調(diào)試。調(diào)試說(shuō)明: 在 2023年9月15號(hào)之前,在 app.json 中配置 __usePrivacyCheck__: true 后,會(huì)啟用隱私相關(guān)功能,如果不配置或者配置為 false 則不會(huì)啟用。

    2024年02月10日
    瀏覽(98)
  • uni-app 新增 微信小程序之新版隱私協(xié)議

    uni-app 新增 微信小程序之新版隱私協(xié)議

    一、manifest.json中配置 二、編寫封裝后的組件 三、頁(yè)面引入試用

    2024年02月07日
    瀏覽(27)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包