掘金日新计划&小程序知识合集

105 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天

一、form表单

当点击 <form/> 表单中 formType 为 submit 的 <button/> 组件时,会将表单组件中的 value 值进行提交,需要在表单组件中加上 name 来作为 key。

bindtap 用户点击时触发

bindchange 用户输入完成时触发(建议要输入中文的input采用这个点击事件)

判断两次密码不一致用 !== 相比较   例如:if(that.data.password !== that.data.password_confirmation){ }

 <form bindsubmit="loginTap">
    <view class="section">
      <input placeholder="输入手机号"  maxlength="color:rgb(144 255 173)">11" placeholder-style="color:#fff" name="phone" bindtap="phone"/>   
    </view>                                                                                           //hover-class="none" 设置按钮按下的样式及状态
    <button  hover-class="other-button-hover" form-type="submit" bindtap="phoneBtn"> 登录 </button>
  </form>

二、获取地理位置

wx.getLocation(OBJECT)

获取当前的地理位置、速度。当用户离开小程序后,此接口无法调用。开启高精度定位,接口耗时会增加,可指定highAccuracyExpireTime作为超时时间。

type :wgs84返回gps坐标,gcj02 返回可用于wx.openLocation的坐标;altitude:传入 true 会返回高度信息,由于获取高度需要较高精确度,会减慢接口返回速度;isHighAccuracy:开启高精度定位;highAccuracyExpireTime:高精度定位超时时间(ms),指定时间内返回最高精度,该值3000ms以上高精度定位才有效果;

wx.getLocation({
    type: "wgs84",
    success (res) {
        console.log(res)
    }
})
  • latitude:纬度,范围为 -90~90,负数表示南纬;
  • longitude:经度,范围为 -180~180,负数表示西经;
  • speed:速度,单位m/s
  • accuracy:位置的精确度
  • altitude:高度,单位m;
  • verticalAccuracy:垂直精度,单位m(Android无法获取,返回 0);
  • horizontalAccuracy:水平精度,单位m;

但可能会出现以下现象:

1665315390401.jpg

这是因为开发者需要获取用户地理位置,所以呢就要告诉用户我们拿地理位置做什么,就是一个用途说明

需要按照要求在app.json里声明permission字段

"permission": {
    "scope.userLocation": {
        "desc": "你的位置信息将用于小程序位置接口的效果展示"
    }
}

三、转发功能

首先介绍一个微信小程序的API:onShareAppMessage(options)

在 Page 中定义 onShareAppMessage 函数,设置该页面的转发信息。

  • 只有定义了此事件处理函数,右上角菜单才会显示 “转发” 按钮
  • 用户点击转发按钮的时候会调用
  • 此事件需要 return 一个 Object,用于自定义转发内容

步骤如下:

1、首先要在onLoad中配置wx.showShareMenu

2、然后再配置onShareAppMessage

options 参数说明

参数类型说明
fromstring转发事件来源。button:页面内转发按钮;menu:右上角转发菜单
targetobject如果 from值是 button,则 target 是触发这次转发事件的 button,否则为 undefined

回调结果

回调类型errMsg说明
successshareAppMessage:ok转发成功
failshareAppMessage:fail cancel用户取消转发
failshareAppMessage:fail (detail message)转发失败,其中 detail message 为详细失败信息

微信的转发功能是不可以通过success来进行返回值的,在之前是进行了更新,用户在点击转发之后,不管转发是否成功都统一返回成功,所以在我们进行转发的过程中加入了forwarding()来进行返回值的。

友情提示一下如果点击按钮分享的话,button一定要设置open-type="share"否则不起作用。

烟火向星辰,所愿皆成真!