微信小程序踩坑记录

【微信小程序】微信小程序掉进的坑之与后台数据交互 分享做小程序过程中遇到的坑 阅读详情

微信小程序踩坑记录

` 前言:公司的某个项目要使用小程序,以前没接触过小程序,在使用学习小程序的过程中也踩了不少的坑,特此记录一下。


一、微信帮助文档:

1.开发者文档: 开发者文档
2.开发者社区: 开发者社区
3.在小程序开发者工具也可以快速打开文档和社区

在这里插入图片描述

二、获取权限(获取当前的模糊地理位置)

文档: 点击链接跳转
https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.getLocation.html

功能描述
获取当前的地理位置、速度。当用户离开小程序后,此接口无法调用。开启高精度定位,接口耗时会增加,可指定 highAccuracyExpireTime 作为超时时间。地图相关使用的坐标格式应为 gcj02。

你得在微信公众号服务器后台链接: 微信公众号登录申请获取权限,获取位置信息的话最好是获得下图这三个权限。

在这里插入图片描述

申请好之后在开发者工具中app.json编写代码:

"permission": {
    "scope.userFuzzyLocation": {
      "desc": "你的位置信息将用于发布的地址"
    }
  },
"requiredPrivateInfos": [
    "getFuzzyLocation",
    "chooseLocation",
    "chooseAddress"
  ],

在你想要获取位置信息的地方绑定一个事件chooseLocation,在js中编写chooseLocation方法。

(这时候坑来了,如果你就编写获取位置信息,这个时候微信会弹出一个框说他申请获取你的位置信息,用户点击同意倒还好,点击拒绝之后小程序就会记住你拒绝它获取你的位置信息这个时候你就再次点击获取位置信息的时候是获取不了的,所以这个时候我们让他先判断用户是否授权获取位置信息,没授权就打开授权窗口让他再次授权,授权之后才能打开获取位置信息的窗口

/**
   * 定位图标上的事件:授权从地图上取得地址
   * @param {} e
   */
  chooseLocation: function (e) {
    console.log(e);
    var that = this;
    wx.getSetting({
      success(res) {
        console.log(res);
        if (!res.authSetting["scope.userFuzzyLocation"]) {
          wx.authorize({
            scope: "scope.userFuzzyLocation",
            success(res) {
              console.log(res);
              that.openLocation();
            },
            fail(res) {
              wx.showModal({
                title: '是否授权当前位置',
                content: '需要获取您的地理位置,请确认授权,否则地图功能将无法使用',
                complete: (res) => {
                  if (res.cancel) {
                    wx.showToast({
                      title: '您已经取消授权位置',
                    })
                  }
                  if (res.confirm) {
                    wx.openSetting({
                      success(res) {
                        console.log(res.authSetting)
                        res.authSetting = {
                          "scope.userFuzzyLocation": true
                        }
                      }
                    })
                  }
                }
              })

            }
          });
        } else {
          that.openLocation();
        }
      },
    });
  },

获取位置信息的方法是:先打开地图获取

/**
   * 打开地图
   * @param {}} e
   */
  openLocation: function (e) {
    var that = this;
    wx.authorize({
      scope: 'scope.userFuzzyLocation',
      success(res) {
        console.log(res)
        if (res.errMsg == 'authorize:ok') {
          wx.getFuzzyLocation({
            type: 'gcj02',
            success(res) {
              console.log(res)  //此时里面有经纬度
              const latitude = res.latitude;
              const longitude = res.longitude;
              const speed = res.speed;
              const accuracy = res.accuracy;
              wx.chooseLocation({
                latitude: latitude,
                longitude: longitude,
                success: function (res) {
                  console.log(res);
                  that.setData({
                    address: res.address + res.name,
                    addressLength: res.address.length + res.name.length,
                  });
                },
                fail(err) {
                  console.log(err);
                }
              });
            }
          })
        }
      },
      fail(err) {
        console.log(err)
      }
    })
  },

二、图标页面分栏

只需要在项目的app.json中添加:

"tabBar": {
    "list": [
      {
        "pagePath": "pages/index/index",//页面路径
        "text": "首页",//该页面的描述
        "iconPath": "icons/首页-默认.png",//图标位置
        "selectedIconPath": "icons/首页-选中.png"//选中的图标位置
      },
      {
        "pagePath": "pages/login/login",
        "text": "登录",
        "iconPath": "icons/我的申请-默认.png",
        "selectedIconPath": "icons/我的申请-选中.png"
      }
      ...
    ]
  },

自定义tabBar的话参考官方文档:链接:

二、创建页面

页面都放在pages这个文件夹下面的,最好是右键新建page就行,而不是新建文件夹,新建page会把你的js、json、wxml和wxss都创建好

在这里插入图片描述

三、云函数本地调试

在微信公众号后台申请好云函数的环境后,对着项目里的cloudfunctions文件夹右键,可以看出弹出的窗口中就有开启云函数本地调试

在这里插入图片描述

选择你要调试的云函数,可以看见右边有开启本地调试,勾选之后会提示你没有node_modules是否下载,这个文件夹是你调试不可缺少的里面有很多插件,但是小程序工具现在有个bug就是我试了很多次都没有从服务器上下载下来

在这里插入图片描述

node_modules网盘下载链接:
链接:https://pan.baidu.com/s/1O94m7QEh6vqoJgRxn_Wk3Q
提取码:7d2k

云函数从服务器上下载好之后应该是在某个云函数文件夹下的,所以这个文件夹下载好之后复制到你想调试的那个云函数文件夹下就行

四、页面调试

除了在控制调试打印出你想要的对象的值以外,还可以在source这里pages页面下带有[sm]的页面进行断点调试

在这里插入图片描述

五、文件上传

链接:

微信小程序新手踩坑记录(1) 引言 : 学习教程:慕课网-7七月老师的微信小程序入门与实战 此文用来记录一个程序渣学习小程序的踩坑路程。 话不多说,开始记录! ---------------------------------------------------------分割线------------------------------------------------------------------ 踩坑0... 阅读详情

相关推荐

记录一次微信小程序getUserProfile的踩坑经历

一、新注册的微信用户怎么昵称都变成了微信用户了? 最近我们公司的运营小姐姐反馈说小程序新注册的用户的昵称都是微信用户,而且头像也都是一张灰色的头像。以前能拿到的省市区也都没了。并且质问我们是不是我们开发人员在憋什么大招,搞出了一个BUG。 之前前端一直使用的wx.getUserInfo方法获取到的encryptedData传给服务端是一直可以解析到用户信息的,最近发现新注册的用户都变成了微信用户,灰色头像。 查看微信官方文档发现原来微信对getUserInfo接口做了调整,以及新增了一个getUs

Coding Earth Engine 3179

用户关闭页面,或者点击链接离开,这时如何保证 HTTP 请求还能发送出去

如何在用户离开页面时可靠地发送 HTTP 请求

MYD_Z的博客 1733

微信小程序picker-view样式层次踩坑记录

微信小程序picker-view样式踩坑记录picker-view适用范围一个简单的例子样式层次picker-view的stylepicker-view-columnpicker-view的mask-stylepicker-view的indicator-style总结 picker-view适用范围 在小程序的开发中,有些时候需要用到下拉列表,一般情况下直接用微信现成的 picker组件已经可以满...

初夏de遐想的博客 7395

微信小程序 执行 wx.reLaunch 后,点击事件失效【已解决,亲测有效】

在使用微信小程序中,有一个场景需要调用 wx.reLaunch到A页面 wx.reLaunch({ url: '/pages/index/nologin/nologin', }) 但是 reLaunch 到A页面后,发现A页面的所有点击事件都没反应了 解决办法,用延时器包裹起来: setTimeout(() => { wx.reLaunch({ url: '/pages/index/nologin/nologin', }) }, 100) 有用,亲测有效!! ...

weixin_42289080的博客 2189

记录一下我在学习微信小程序中踩的坑

在Page({ })里面,但在data:{ }外面,自己用了个mydata:{ }来放了些变量,方便使用,这样一来就不用每次都setData({ }),一写一大堆,方便多了。但是,却出现页面有时加载时读不到mydata{ }中的数据的问题:每次点开发者工具的“编译”,重新载入页面,没有问题,也不报错;但如果我改动了代码,哪怕改一个标点和空格(不会导致错误),再按ctrl+s,微信开发者工具自动热重载,就会报错,提示说我引用的 mydata{ }中的某个数据undefined。

judegaa的博客 700

qemu(2) -- 定制开发板

向qemu源码中添加自定义开发板

xflm的博客 831

【学员提问bug】小程序在onUnload里面调接口,用来记录退出的时间, 但是接口调用还没成功, 页面就关闭了。如何让接口在onUnload关闭前调用成功?

实时上报:可以在页面的onUnload或App的onHide中上报。延时补偿:如果离开过快导致请求未完成,可以用记录时间,在下次启动时检查并补偿上报。参考资料:https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/page-life-cycle.html如果你在web前端开发、面试、前端学习路线有困难可以在下方加我名片。免费答疑,行业深潜多年的技术牛人帮你解决bug。

商务合作 / 项目定制开发 / 前端一对一培训、答疑 1005

自抗扰(ADRC)控制原理及控制器设计

自抗扰控制原理以及控制器设计

weixin_43487974的博客 3万+

微信小程序开发常见报错汇总

①.js文件中的Page()上面的代码有误,导致js代码不能正常执行,就会导致wxml页面空白出现上面提示。:在引用微信小程序组件时,声明 properties 属性时需要声明其属性类型。③中间有个page 代码 有bug 导致下面的page 无法注册。如:js外部引用路径错误造成,修改正确即可。:补充 属性的 type就可以了。②.js代码里面多了一个逗号导致的。

记录 3352

设备管理器找不到蓝牙?从驱动到BIOS的系统排查指南

在Windows系统中,蓝牙功能依赖硬件、驱动、系统服务三层协同工作。设备管理器作为硬件状态的可视化窗口,当蓝牙设备消失时,往往意味着某一层链路中断。常见原因包括BIOS无线开关关闭、驱动异常、蓝牙支持服务被禁用,或系统文件损坏。排查思路应从基础概念出发,先理解蓝牙设备在设备管理器中的四种隐藏位置,再通过扫描硬件、检查BIOS、重装驱动、修复服务等步骤逐层定位。这一方法不仅适用于Windows电脑,也适用于HC-05、ESP32等嵌入式蓝牙模块,因为硬件、协议栈、应用层的故障逻辑相通。掌握这套技术价值在于减

weixin_33377602的博客 258

kettle9.0+ 连接Hadoop报错

kettle bug

x²+(y-√³x²)²=1的博客 1554

微信小程序的踩坑记录之tabBar

前言 把这篇博客标题定义为这个踩坑记录,还是有一些原因的,曾经有人问过我你做微信小程序的整个过程中遇到过哪些坑,其实是很遗憾,对微信小程序在那个时间段了解的少之又少,只用了仅仅的几个功能完成它,还没有理解其中的核心理念,当再次接触到小程序,感受到了自己几个月前写的代码很烂,但这次接触最吸引我的还是云开发这个东西的出现,我认为它的出现让前端开发人员省去了与后台交互这个步骤,这就大大加快了小程序开发...

Alberqing_的博客 2601

从入门到精通:LabVIEW全攻略

本文为 LabVIEW 全攻略指南,系统梳理从基础到高级的核心知识与应用技巧。首先介绍 LabVIEW 的图形化编程特性、数据流运行机制及开发环境,通过创建与调试 VI 的实操演示帮助入门。接着深入解析程序结构(循环、分支、顺序)、数据类型(数组、簇、波形)及图形显示技术(Graph、XY Graph 等)的原理与应用场景。高级部分涵盖多线程编程、错误处理、硬件通信及第三方工具集成等进阶技术,并针对程序逻辑、硬件适配、性能优化等常见问题提供排查与解决方案。

邓邓子的博客 3554

微信小程序之踩坑与填坑记录(持续更新...)

之前主要做Java开发,前些时间有机会接触了小程序开发,也挺有意思的,不过在开发微信小程序过程中也遇到了很多坑,特此记录一下所有的坑和解决方案,持续更新······ 一. 注意事项 1.微信小程序的缓存是共通的 开发版,体验版,正式版的微信小程序的缓存居然是通用的。 这个真的有点惊吓,当时开发账号缓存直接显示在正式版微信小程序上,吓得以为要被祭天了,排查了半天才知道原来缓存是通用的。 解决方案 在登录前先清除缓存,再重新请求获取。 // 清空所有缓存 wx.clearStorageSync(); 2.

盛夏温暖流年 3049

使用 Python 构建 Reddit 热帖爬虫:抓取热门讨论帖和评论

在现代互联网中,Reddit 被誉为全球最大、最活跃的讨论平台之一,汇聚了各种主题的帖子、评论和社交互动。因此,抓取 Reddit 上的热门帖子和评论可以为我们提供一个丰富的文本数据源,可以用于情感分析、话题建模、趋势分析等应用。Reddit 提供了官方的 API,可以让开发者获取包括帖子、评论、用户信息等在内的各种数据。我们可以结合上述方法,抓取多个热门帖子,并将每个帖子的标题、作者、发布时间和评论内容保存到一个数据结构中。每个帖子的对象包含了丰富的信息,如标题、内容、发布时间、作者等。

2201_76125261的博客 374

AI编码规则:从提示工程到自动化,提升大模型生成代码质量

在软件工程领域,代码质量是保障软件可维护性、安全性和团队协作效率的核心。其背后遵循着从基础语法规范到架构设计原则的一系列工程实践。随着大语言模型(LLM)在代码生成任务中的广泛应用,如何确保AI生成的代码符合这些工程标准,成为一个关键的技术挑战。这涉及到将人类工程师积累的最佳实践,转化为机器可理解、可执行的明确约束。通过系统化的**编码规则**定义与集成,例如构建涵盖安全、风格、架构的多层次规则集,并将其融入**提示工程**或自动化工作流,可以显著引导AI产出更健壮、规范的代码。这种方法的价值在于,它能将模

weixin_42525189的博客 640

使用echarts 路径图_Echarts在Taro微信小程序开发中的踩坑记录

❝Echarts在Taro微信小程序开发中的踩坑记录❞背景近期笔者在使用Taro进行微信小程序开发,当引入Echarts图表库时,微信检测单包超限2M的一系列优化措施的踩坑记录,期望能指导读者少走一些弯路。为什么选择Echarts?微信小程序目录市面上使用最多的两款图表库,如下:echarts-for-weixin——echarts微信小程序版本wx-charts——基于微信小程序的图表...

weixin_35952000的博客 415

JavaScript高级程序设计

作者:禅与计算机程序设计艺术 1.简介 JavaScript(简称JS)是一种直截了当、简单易用的动态脚本语言。它最初由Netscape公司的Brendan Eich(布兰登·艾奇)于1995年创建,但后来逐渐成为事实上的通用编程语言。目前,JS已经成为世界上最流行的客户端脚本语言,广泛用于网页开发、移

AI天才研究院 2256

微信小程序----------踩坑记录---安卓iOS兼容等

@微信小程序----------踩坑记录 一、android 和 ios 兼容 1.不定宽高元素使用全铺背景图片,ios没有问题,安卓手机背景图片显示空白 hack: background-size:cover;(元素加上这一属性) 2.安卓手机缓存严重问题 hack: 在图片后再加上一串随机数 在wxs中:(有些iOS手机不能识别小数的随机数,所以最好用整数 var random = Math...

huihui_jiang的博客 1510

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

微信小程序(一)踩坑记录

【微信小程序踩坑记录 - CSDN App】http://t.csdnimg.cn/V3lQC。

m0_71499181的博客 175

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

微信小程序开发踩坑记录

1. 微信小程序给组件的data赋值 2.微信小程序本地存储wx.getStorageSync和wx.setStorageSync的坑 3.微信小程序对data{}的监听机制 4.微信小程序给组件的properties传参时,properties一定要指定数据类型,否则真机测试会报错!!! 5 微信小程序报错Do not have xxx handler in current page,xxxx 6 微信小程序异步转同步

Xiaofeng_Lu__的博客 1842

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

原生微信小程序开发踩坑记录

page的onLoad里才能获取,component的生命周期里没法直接获取,所以需要再包一层page来获取跳转url里的参数。3、wxs里正则有不一样的使用方法,注意使用getRegExp,以及不要开头结尾的//;.wxml结构,主要是一个宽的的设置,movable-area 和 movable-view 都要设置宽度。小程序还是多年前用taro开发的,原生开发还是第一次。2、component获取url里的参数。1、父组件调用子组件的里的方法。4、wxs公共方法的使用。tool.wxs文件定义。

Elaine20132014的博客 307

微信小程序登陆踩坑记录

业务需求: 需要使用微信小程序授权获取手机号直接进行登陆操作,后端没有存session_key,也就是说我们服务端的登录态跟微信只有第一次登陆解析手机号的时候有关联,所以这里没有使用wx.checkSession去检查微信的登录态 涉及技术: wx.login(Object object) 文档:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html phonenumber.getPhoneN

u014636613的博客 2146

微信小程序之蓝牙 BLE 踩坑记录

前言 前段时间接手了一个微信小程序的开发,主要使用了小程序在今年 3 月开放的蓝牙 API ,此过程踩坑无数,特此记录一下跳坑过程。顺便开了另一个相关的小项目,欢迎 start 和 fork: BLE_MiniProgram API简介 微信小程序目前有蓝牙 API 共 18 个 操作蓝牙适配器的共有 4 个,分别是 wx.openBluetoothAdapter 初始化蓝牙适配器 wx.closeBluetoothAdapter 关闭蓝牙模块 wx.getBluetoothAdapterSta

哈利路亚的收藏夹 2734
上一篇: Layui踩坑记录
下一篇: 记录开发微信小程序的过程中出现的bug
Januea
博客等级 码龄7年 224粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值