微信小程序 | 小程序系统API调用

news2024/9/25 3:24:02

🖥️ 微信小程序专栏:小程序系统API调用
🧑‍💼 个人简介:一个不甘平庸的平凡人🍬

✨ 个人主页:CoderHing的个人主页

🍀 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️

👉 你的一键三连是我更新的最大动力❤️


目录

一、网络请求API和封装

网络请求 – API参数

网络请求 – API使用

网络请求 – API封装

网络请求域名配置

二、展示弹窗和页面分享

展示弹窗效果

分享功能

三、设备信息和位置信息

获取设备信息

获取位置信息

四、小程序Storage存储

Storage存储

五、页面跳转和数据传递

界面跳转的方式

页面跳转 - navigateTo

页面返回 - navigateBack

页面跳转 - 数据传递(一)

页面跳转 - 数据传递(二)

界面跳转的方式

六、小程序登录流程演练

小程序登录解析

小程序用户登录的流程


一、网络请求API和封装

网络请求 – API参数

  • 微信提供了专属的API接口,用于网络请求: wx.request

 

  • 关键属性解析:
  • url:必传
  • data:请求参数
  • methods:请求方式
  • success:成功的回调
  • fail:失败的回调

网络请求 – API使用

  • 直接使用wx.request发送请求:

网络请求 – API封装

封装类

 

封装函数

 

网络请求域名配置

  • 每个微信小程序需要事先设置通讯域名,小程序只可以跟指定的域名进行网络通信.
  • 小程序登录后台 – 开发管理 – 开发设置 – 服务器域名
  • 服务器域名请在 「小程序后台 - 开发 - 开发设置 - 服务器域名」 中进行配置,配置时需要注意:
  • 域名只支持 https (wx.request、wx.uploadFile、wx.downloadFile) 和 wss (wx.connectSocket) 协议
  • 域名不能使用 IP 地址(小程序的局域网 IP 除外)或 localhost
  • 可以配置端口,如 https://myserver.com:8080.但是配置后只能向 https://myserver.com:8080 发起请求.如果向https://myserver.com、https://myserver.com:9091 等 URL 请求则会失败
  • 如果不配置端口.如 https://myserver.com,那么请求的 URL 中也不能包含端口,甚至是默认的 443 端口也不可以.如果 向 https://myserver.com:443 请求则会失败
  • 域名必须经过 ICP 备案
  • 出于安全考虑,api.weixin.qq.com 不能被配置为服务器域名,相关 API 也不能在小程序内调用..开发者应将 AppSecret 保存到后台服务器中,通过服务器使用 getAccessToken 接口获取 access_token,并调用相关 API.
  • 不支持配置父域名,使用子域名

二、展示弹窗和页面分享

展示弹窗效果

  • 小程序中展示弹窗有四种方式: showToast、showModal、showLoading、showActionSheet

 

showToast

效果展示

 

 

 

效果展示

 

 

 

效果展示

 

 

分享功能

  • 分享是小程序扩散的一种重要方式,它有两种分享方式:
  • 一:点击右上角的菜单按钮,点击转发
  • 二:点击某一个按钮,直接转发
  • 当我们转发给好友一个小程序时,通常小程序中会显示一些信息:
  • 如何决定这些信息的展示呢?通过 onShareAppMessage
  • 监听用户点击页面内 转发按钮(button 组件 open-type="share")右上角菜单“转发”按钮的行为,并自定义转发内容
  • 此事件处理函数需要 return 一个 Object,用于自定义转发内容

三、设备信息和位置信息

获取设备信息

  • 在开发中,需要经常获取当前设备的信息,用于收集信息或者进行一些适配
  • 小程序提供了一个API: wx:getSystemInfo()

 

获取位置信息

  • 开发中我们需要经常获取用户的位置信息.以方便给用户提供相关的服务
  • 通过API获取:wx.getLocation()

在app.json中配置

 

 

  • 对于用户的关键信息,需要获取用户的授权后才能获得:

四、小程序Storage存储

Storage存储

  • 在开发中,我们需要将一部分数据存储在本地:比如token 用户信息等
  • 小程序提供了专门的Storage用于进行本地存储
  • 对比之前我们需要存 需要先JSON.stringfiy 之后取出来得 json.parse转回来
  • 同步存取数据的方法:
  • wx.setStorageSync()
  • any wx.getStorageSync()
  • wx.removeStorageSync()
  • wx.clearStorageSync()

  • 异步存储数据的方法:
  • wx.setStorage
  • wx.getStorage
  • wx.removeStorage
  • wx.clearStorage

五、页面跳转和数据传递

界面跳转的方式

  • 界面的跳转有两种方式:通过navigator组件 和 通过wx的API跳转
  • wx的API跳转 :

页面跳转 - navigateTo

  • wx.navigateTo
  • 保留当前页面,跳转到应用内的某个页面;
  • 但是 不能跳到tabbar页面;

 

页面返回 - navigateBack

  • wx.navigateBack()
  • 关闭当前页面,返回上一页面或多级页面

页面跳转 - 数据传递(一)

  • 在界面跳转过程中 需要相互传递一些数据,应该如何完成?
  • 首页 => 详情页 : 使用URL中的query字段
  • 详情页 => 首页: 在详情页内部拿到首页的页面对象,直接修改数据

这里给大家两种写法:

 

 

页面跳转 - 数据传递(二)

  • 前面一种数据的传递方式只能通过上面两张图的方式来进行,在现在的小程序已经开始支持events参数,可以用于数据传递

 

 

界面跳转的方式

  • navigator组件主要就是用于界面的跳转的,也可以跳转到其他小程序中:
     

六、小程序登录流程演练

小程序登录解析

  • 为什么需要用户登录?
  • 增加用户的 粘性和产品的停留时间
  • 如何识别同一个小程序用户身份?
  • 认识小程序登录流程
  • openidunionid(在微信中,判断 是不是同一个用户 登录不同的产品)
  • 获取code
  • 换取authToken
  • 用户身份多平台共享
  • 账号绑定
  • 手机号绑定

小程序用户登录的流程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/131655.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go语言进阶

一、并发 VS 并行 1: 多线程程序在一个核的CPU上运行 2: 多线程程序在多个核的CPU上运行 Go可以充分发挥多核优势,高效运行。 线程:用户态,轻量级线程,栈MB级别。 协程:内核态,线程内跑多个协程&#xff…

最短路径的java代码实现

1.最短路径定义及性质 有了加权有向图之后,我们立刻就能联想到实际生活中的使用场景,例如在一副地图中,找到顶点a与地点b之间的路径,这条路径可以是距离最短,也可以是时间最短,也可以是费用最小等&#xff…

爬虫的奇技淫巧之ajax-hook

声明 本文仅供学习参考,如有侵权可私信本人删除,请勿用于其他途径,违者后果自负! 前言 随着反爬力度的不断升级,现在的爬虫越来越难搞了。诸如加密参数sign、signature、token。面对这种情况传统的方式可以使用自动…

Redis集群系列九 —— 集群伸缩之扩容

集群伸缩 Redis 集群提供了灵活的节点扩容和收缩方案,当有新节点加入时,需要把一部分数据迁移到新节点来达到集群的负载均衡;当旧节点退出时,需要把其上的数据迁移到其他节点上,确保该节点上的数据能够被正常访问。从…

ext4 extent详解3之内核源码流程讲解

本文在前两篇《ext4 extent详解1之示意图演示》和《ext4 extent详解2之内核源码详解》讲解ext4 extent 文章的基础上,本文从内核源码、实例演示等角度详细介绍ext4 extent B树的形成过程,希望看过本文的读者能理解ext4 extent B树的工作原理。 1 &#…

6.3 返回类型和return语句

文章目录无返回值函数有返回值函数值是如何被返回的不要返回局部对象的引用或指针引用返回左值列表初始化返回值主函数main的返回值递归返回数组指针声明一个返回数组指针的函数使用尾置返回类型使用decltypereturn语句终止当前正在执行的函数并将控制权返回到调用该函数的地方…

2022年终总结:点滴积累让我不再迷茫

今年是开始写作的第二年,如果说第一年是起步的话,今年就是开始有了一些小收获了,通过点滴积累让我知道积累的充实感,通过一点一点粉丝或阅读量的积累,增加写作的自信。 今年的收获 首先看一下今年的阅读量和粉丝量: …

cheunghonghui的【22年度总结】

cheunghonghui的【22年度总结】 好久好久没写博客了,看了下后台,上一次发表博客已经是一年半之前,趁着年底,抓紧时间写(水)一篇不然就要断更了。 【年度工作总结】 1、迭代了未知bug 2、修复了已知bug …

迎接2023,他真的想说“新年快乐”

😊你好,我是小航,一个正在变秃、变强的文艺倾年。 🔔2023年快要到来啦,再此祝大家诸事顺遂,所见所盼皆如愿。 🔔本文讲解如何使用Java演奏一首歌曲,一起卷起来叭! 众所周…

Faster RCNN网络源码解读(Ⅶ) --- RPN网络代码解析(中)RegionProposalNetwork类解析

目录 一、代码作用(rpn_function.py) 二、代码解析 2.1 RegionProposalNetwork类 2.1.1 初始化函数__init__ 2.1.2 正向传播过程forward 2.1.3 concat_box_prediction_layers函数 2.1.4 permute_and_flatten 2.1.5 filter_proposals 2.1.6 _…

2022 许些遗憾 年终总结

目录回首过去展望未来验收 2022年任务清单 ---------------------------》 2023年 flag2023 展望回首过去 此刻,想想这一年,口罩,38.5℃,艰难时刻,终究在2022最后十天被确诊了“阳”,没有备任何药&#xff…

Linux系列——Linux操作系统安装及服务控制(1)

作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.Linux介绍 1.Linux是什么? 2.Linux系统的优点 …

ArcGIS基础实验操作100例--实验31纠正栅格坐标

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 高级编辑篇--实验31 纠正栅格坐标 目录 一、实验背景 二、实验数据 三、实验步骤 (1&…

2023新年祝福代码[css动画特效]

目录 前言 一、jQuery之家 二、2023新年祝福页面 2.1 我的博客和祝福语 2.2 我的博客头像和动态烟花 ​编辑 2.3 背景为动图 三、完整效果图 总结 前言 心态还需努力呀在这里祝大家新的一年里愿望都能实现。2022年已经过去,2022年的遗憾、不开心&#xff…

Spring学习笔记(1)

Spring系统架构 Spring Framework是Spring生态圈中最基础的项目,是其他项目的根基。 Spring Framework系统架构 学习线路 核心概念 IoC( Inversion of Control )控制反转 使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象…

DoIP协议从入门到精通—Alive check

惯例,为避免自己成为高知识低文化的汉子,分享一段喜欢的文字: 一、Socket 概念 在DoIP(Diagnostic on IP)概念中,通信的核心是Socket(套接字,实际通信的载体),是车载以太网在诊断范畴进行通信的句柄,Socket是支持TCP/IP协议的网络通信的基本操作单元。对于Socket: …

python多进程的理解 multiprocessing Process join run

最近看了下多进程。 一种接近底层的实现方法是使用 os.fork()方法,fork出子进程。但是这样做事有局限性的。比如windows的os模块里面没有 fork() 方法。 windows: 。linux: 另外还有一个模块:subprocess。这个没整过&#xff0c…

Canvas学习笔记 | 图片操作

图片素材 本篇文章的示例采用下图进行图片操作演示。 图片原始尺寸为:640px * 640px。 绘制图片 在Canvas中,我们使用drawImage()方法绘制图片。drawImage()方法有如下3种调用方式: 1.drawImage(image, dx, dy) 2.drawImage(image, dx, d…

【Android】带你细看Android input系统中ANR的机制

“本文基于Android13源码,分析Input系统的Anr实现原理“ 在文章之前,先提几个问题: 如果在activity任意周期(onCreate,onResume等),同步执行耗时超过5s(ANR时间)的任务,…

JavaWeb06 AJAX 黑马用Axios实现用户名已存在问题? JSON Vue Element

01-AJAX-概述-替换JSP 02-AJAX-快速入门 03-案例-验证用户是否存在 04-Axios-基本使用&请求方式别名(可读性不强) 练习:用Axios替换AJAX实现用户名是否存在功能 就把原来的.html 2.2步换成下面的响应代码即可 为啥就是不行呢????? 05-JSON-概述和基础语法 06-JSON-…