当前位置: 首页 > wzjs >正文

二手车网站源码下载seo关键词工具

二手车网站源码下载,seo关键词工具,电子商务网站建设与实践考试,大连哪里做网站1.地理定位功能 通过小程序开发平台通过的API,来获取用户的地理位置。用户在使用小程序时,可以授权小程序获取自己的地理位置。 wx.getLocation():获取当前地理位置wx.chooseLocation(): 打开地图选择位置 开发》开发管理》接口设置 使用方法…
1.地理定位功能

通过小程序开发平台通过的API,来获取用户的地理位置。用户在使用小程序时,可以授权小程序获取自己的地理位置。

  1. wx.getLocation():获取当前地理位置
  2. wx.chooseLocation(): 打开地图选择位置

开发=》开发管理=》接口设置
使用方法:
在这里插入图片描述

// index.js// 获取用户地理位置信息async onLocation() {// 获取经度,纬度,高度const res = await wx.getLocation()//打开地图让用户选择位置const res = await wx.chooseLocation()}// app.json"requiredPrivateInfos": ["getLocation","chooseLocation"],"permission": {"scope.userLocation": {"desc": "获取地理位置信息用于填写收货地址"}}
2. 拒绝授权的解决方案

在这里插入图片描述

 async onLoaction() {try {// 用户拒绝授权以后,如果再次调用 getLocation,不会在弹出授权弹窗const res = await wx.getLocation()console.log(res)} catch (error) {wx.toast({ title: '您拒绝授权' })}}

在这里插入图片描述
获取授权状态
wx.getSetting()获取用户所有授权信息,查询用户是否授权了位置信息
authSetting只包含小程序向用户请求的所有权限,以及授权的结果
scope.userLoaction用户是否授权获取了地理位置信息
如果小程序没有向用户发起授权请求,authSetting中没有scope.userLoaction属性
如果允许授权,返回值就是true,反之

 async onLoaction() {// wx.getSetting()获取用户所有授权信息,查询用户是否授权了位置信息// authSetting只包含小程序向用户请求的所有权限,以及授权的结果const { authSetting } = await wx.getSetting()//scope.userLoaction用户是否授权获取了地理位置信息// 如果小程序没有向用户发起授权请求,authSetting中没有scope.userLoaction属性// 如果允许授权,返回值就是true,反之console.log(authSetting['scope.userLoaction'])}

整体逻辑

 async onLocation() {// authSetting 获取小程序已经向用户申请的权限,并且会返回授权的结果const { authSetting } = await wx.getSetting()// scope.userLocation 用户是否授权小程序获取位置信息console.log(authSetting['scope.userLocation'])// 判断用户是否拒绝了授权if (authSetting['scope.userLocation'] === false) {const modalRes = await wx.modal({title: '授权提示',content: '需要获取地理位置,请确认授权'})if (!modalRes) return wx.toast({ title: '您拒绝了授权' })const { authSetting } = await wx.openSetting()if (!authSetting['scope.addPhoneCalendar.userLoaction']) return wx.toast({ title: '授权失败' })const locationRes = await wx.getLocation()console.log(locationRes)} catch (error) {wx.toast({ title: '您拒绝授权获取位置信息' })} else {try {const locationRes = await wx.getLocation()console.log(locationRes)} catch (error) {wx.toast({ title: '您拒绝授权获取位置信息' })}}}

用button打开授权页面

<button type="primary" open-type="openSetting">打开授权页面</button>
3. 腾讯位置服务

在这里插入图片描述

4. LBS逆地址解析
  1. 在项目中引入SDK核心类
  2. 在onLoad中实例化API核心类,同时配置创建的key
  3. 使用实例方法reverseGeocoder方法进行逆地址解析,将提供的坐标转换为详细的地址位置信息

如果在进行逆地址解析的时候,如果发现key只能使用一次,需要在腾讯位置服务后台配置

// 引入QQMapWX核心类
import QQMapWX from '../../../../../libs/qqmap-wx-jssdk'// 获取用户地理位置信息async onLocation() {// 获取 经度 ,纬度 ,高度const res = await wx.getLocation()//打开地图让用户选择位置// latitude纬度 longitude经度 name搜索的地点const { latitude, longitude, name } = await wx.chooseLocation()// 逆地址解析this.qqmapwx.reverseGeocoder({location: {longitude,latitude},success: (res) => {const { adcode, province, city, district } = res.result.ad_infoconst { street, street_number } = res.result.address_componentconst { standard_address } = res.result.formatted_addressthis.setData({// 省provinceName: province,provinceCode: adcode.replace(adcode.substring(2, 6), '0000'),// 市cityName: city,cityCode: adcode.replace(adcode.substring(4, 6), '00'),// 区districtName: district,districtCode: district && adcode,// 详细地址address: street + street_number + name,// 完整地址fullAddress: standard_address + name})}})},onLoad() {this.qqmapwx = new QQMapWX({key: 'JA5BZ-ZYYWT-BHYXZ-LXUVP-JZ3D2-7RFD4'})}
5.async-validator基本使用
// 引入构造函数
import Schema from 'async-validator'
Page({data: {name: ''},// 对数据进行验证onValidator() {// 定义验证规则const rules = {// key验证规则的名字,名字要和验证的数据保持一致name: [{ required: true, message: 'name 不能为空' },{ type: 'string', message: 'name不是字符串' },{ min: 2, max: 3, message: '名字最少两个字,最多三个字' }// pattern 使用正则对数据进行验证// { pattern: '', message: '' }// validator 自定义验证规则//   { validator: () => {} }]}// 对构造函数进行实例化, 同时传入验证规则const validator = new Schema(rules)// 需要调用 validate 实例方法,对数据进行验证// 第一个参数:需要验证的数据,要求数据是一个对象// validate 方法只会验证和验证规则同名的字段// 第二个参数:是一个回调函数validator.validate(this.data, (errors, fields) => {// 如果验证成功,errors 是一个 null// 如果验证失败,errors 是一个数组,数组每一项是错误信息// fields 是需要验证的属性,属性值是一个数组,数组中也包含着错误信息if (error) {console.log('验证失败')console.log(errors)console.log(fields)} else {console.log('验证成功')}})}
})
6.新增收货地址表单验证
  1. 收货人不能为空,且不能输入特殊字符
  2. 手机号不能为空, 且输入的手机号必须合法
  3. 省市区不能为空
  4. 详细地址不能为空
// 保存收货地址async saveAddrssForm(event) {// 组织参数(完整地址,是否设置为默认值)const { provinceName, cityName, districtName, address, isDefault } = this.data//最终要发送的请求参数const params = {...this.data,fullAddress: provinceName + cityName + districtName + address,isDefault: isDefault ? 1 : 0}const { valid } = await this.validatorAddress(params)if (!valid) returnconsole.log(params)},validatorAddress(params) {// 验证收货人,是否只包含大小写字母、数字和中文字符const nameRegExp = '^[a-zA-Z\\d\\u4e00-\\u9fa5]+$'// 验证手机号,是否符合中国大陆手机号码的格式const phoneReg = '^(?3\\d|4[4-9]|5[0-35-9]|6[67]|7[0-8]|8\\d|9\\d)\\d{8}$'// 创建验证规则const rules = {name: [{ required: true, message: '请输入收货人姓名' },{ pattern: nameRegExp, message: '收货人姓名不合法' }],phone: [{ required: true, message: '请输入收货人手机号' },{ pattern: phoneReg, message: '收货人手机号不合法' }],provinceName: { required: true, message: '请选择收货人所在地区' },address: { required: true, message: '请输入详细地址' }}// 传入验证规则进行实例化const validator = new Schema(rules)// 调用实例方法对请求参数进行验证// 注意:我们希望将验证结果通过 Promise 的形式返回给函数的调用者return new Promise((resolve) => {validator.validate(params, (errors) => {if (errors) {// 如果验证失败,需要给用户进行提示wx.toast({ title: errors[0].message })// 如果属性值是 false,说明验证失败resolve({ valid: false })} else {// 如果属性值是 true,说明验证成功resolve({ valid: true })}})})},
7.新增收货地址功能

只用调用一个接口就行
导入接口API函数
import { reqAddAddress } from ‘…/…/…/…/…/api/address’

    const { valid } = await this.validatorAddress(params)if (!valid) returnconst res = await reqAddAddress(params)if (res.code === 200) {wx.navigateBack()wx.toast({ title: '新增成功' })}
8. 收货地址列表渲染
import { reqAddressList } from '../../../../../api/address'
Page({// 页面的初始数据data: {addressList: []},// 去编辑页面toEdit() {wx.navigateTo({url: '/modules/settingModule/modules/settingModule/pages/address/add/index'})},async getAddressList() {const { data: addressList } = await reqAddressList()this.setData({ addressList })},onShow() {this.getAddressList()}
})
9.更新收货地址功能
// 处理更新async showAddressInfo(id) {if (!id) return// 将id挂载到当前页面实例上this.addressId = idwx.setNavigationBarTitle({title: '更新收货地址'})const res = await reqAddressInfo(id)this.setData(data)},onLoad(options) {this.qqmapwx = new QQMapWX({key: 'JA5BZ-ZYYWT-BHYXZ-LXUVP-JZ3D2-7RFD4'})// 实现更新this.showAddressInfo(options.id)}
10.删除收货地址

询问用户是否确认删除wx.modal
如果确认删除,调用API
同时给用户提示,并重新获取收货地址列表 this.getAddressList()

  // 删除收货地址delAddress (event) {// 结构传递的idconst { id } = event.currentTarget.dataset// 询问用户是否确认删除const modalRes = await wx.modal({content: '您确认删除该收货地址吗?'})// 如果确认删除,调用API// 同时给用户提示,并重新获取收货地址列表if(modalRes) {await reqDelAddress(id)wx.toast({ title: '删除成功' })this.getAddressList()}},
http://www.dtcms.com/wzjs/526749.html

相关文章:

  • 安全的网站建设服务西安seo技术培训班
  • 靖江做网站的单位网页设计自学要多久
  • 什么网站做广告效果好重庆百度
  • 软件介绍网站源码深圳百度推广
  • 微信公众平台怎么做微网站吗有哪些搜索引擎网站
  • 织梦网站密码拉新app渠道
  • 网站建设 域名 数据库河南整站百度快照优化
  • 动态网站建设怎么样电话销售怎么找客户渠道
  • 医妃在上王爷别乱来关键词优化公司推荐
  • 在哪里可以学做饰品网站自己怎么做引流推广
  • 济南建站服务商今天特大新闻
  • 重庆知名网站建设公司网络广告宣传怎么做
  • 贵阳网站设计企业网站排名优化软件哪家好
  • 网站个人备案做企业网站跨境电商网站
  • 做旅行义工网站蚁网站seo推广计划
  • 分站城市网站如何做seoseo工资待遇 seo工资多少
  • 杰迅山西网站建设新网站秒收录技术
  • 如果做动态网站开发 以下中山网站建设公司
  • 怎么夸客户网站做的好关键词在线试听
  • 做网站放广告百度信息流投放
  • 法律垂直问答网站怎样做网络营销方式有哪些分类
  • 旅游网站首页制作seo搜索引擎优化排名报价
  • 做环氧地坪工程网站百度快照排名
  • 国外真实新闻网站西安seo顾问培训
  • 哪儿提供邯郸做网站seo优化教程培训
  • 做设计在哪个网站投递简历sem推广是什么
  • 伽师网站建设百度网络营销中心app
  • wordpress短代码调用文章标题萧山区seo关键词排名
  • php与mysql网站开发...网站建设外包
  • 深圳门户网站建设专业靠谱的seo收费