收藏
回答

wx.addPhoneRepeatCalendar日历添加在wx.authorize使用回调报错?


      //返回结果:
    日程添加失败的回调函数 {"errMsg""addPhoneRepeatCalendar:fail can only be invoked by user TAP gesture."}
    
    /**
   * @description 添加到日历
   */
  addPhoneRepeatCalendar () {
    const that = this
    wx.getSetting({
      success(res) {
        // 判断是否已经授权
        if (!res.authSetting['scope.addPhoneCalendar']) {
          wx.authorize({
            scope'scope.addPhoneCalendar',
            success() {
                that.wxAddPhoneRepeatCalenda()
            },
            fail() {
              // 用户拒绝授权,提示用户授权
              wx.showToast({
                title'请先授权日历',
                icon'none',
                duration2000
              })


              that.setData({
                canIUsefalse
              })
              
            }
          })
        } else {
          // 已经授权,调用添加日程 API
          that.wxAddPhoneRepeatCalenda()
        }
      }
    })
  },


  wxAddPhoneRepeatCalenda () {
    let currentDate = new Date();  
    currentDate.setMonth(currentDate.getMonth() + 1); 
    let nextMonthTimestamp = currentDate.getTime();  
    wx.addPhoneRepeatCalendar({
      title`「小日常桑」别忘了打卡喔~`// 日程标题,必填项
      startTimenew Date().getTime()/1000// 日程开始时间,必填项
      endTime: nextMonthTimestamp/1000// 日程结束时间,必填项
      description'「小日常桑」提醒您打卡时间到啦~',
      alarmtrue,
      alarmOffset'0'//提醒提前量,单位秒,默认 0 表示开始时提醒
      repeatInterval'day'//每天重复
      success(res) {
        console.log('日程添加成功的回调函数',res) // 日程添加成功的回调函数
      },
      fail(res) {
        console.log('日程添加失败的回调函数',res) // 日程添加失败的回调函数
      }
    })
  },
回答关注问题邀请回答
收藏

3 个回答

  • Hero
    Hero
    07-31

    请问解决了吗 同问

    07-31
    有用
    回复
  • Hlxuan.
    Hlxuan.
    2023-10-12

    需要用户点击,产生tap事件才能调用这个API。

    2023-10-12
    有用
    回复 1
    • Agoni 🎈
      Agoni 🎈
      2023-10-12
      是 做成隐私同意先也可以
      2023-10-12
      回复
  • CRMEB
    CRMEB
    2023-10-12

    错误信息中指出了 "addPhoneRepeatCalendar:fail can only be invoked by user TAP gesture.",这意味着 wx.addPhoneRepeatCalendar 只能在用户的触摸操作下才能被调用。请确保在调用 wx.addPhoneRepeatCalendar 前,用户已经通过触摸操作触发了相关的事件。

    2023-10-12
    有用
    回复 1
    • Agoni 🎈
      Agoni 🎈
      2023-10-12
      用户已经通过触摸操作触发了相关的事件是什么意思~ authorize用户授权弹窗 已经点了确认授权了的
      2023-10-12
      回复
登录 后发表内容