【微信小程序创作之路】- 小程序远程数据请求、获取个人信息

news2024/9/21 20:40:32

【微信小程序创作之路】- 小程序远程数据请求、获取个人信息

第七章 小程序远程数据请求、获取个人信息


文章目录

  • 【微信小程序创作之路】- 小程序远程数据请求、获取个人信息
  • 前言
  • 一、远程数据请求
    • 1.本地环境
    • 2.正式域名
  • 二、获取用户个人信息
    • 1.展示当前用户的身份信息
    • 2.获取用户的个人信息
  • 总结


前言

本章我们介绍小程序远程数据请求,通过本地环境和正式域名两部分进行介绍。还会介绍小程序如何获取个人信息。


一、远程数据请求

小程序可以服务外部服务器数据,也可以向外部服务器发送数据。我们将通过本地环境和使用正式域名方式来测试一下,小程序怎么接受和发送数据。

1.本地环境

微信小程序有规定,必须在后台等级过的服务器域名才可以进行通信。不过,开发者工具可以放松这个限制。
点击微信开发工具右上角的详情—>本地设置—>勾选 不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书,这个选项。
在这里插入图片描述
🧀我们通过代码来演示
🏀🏀🏀本地创建springboot服务,和小程序进行通信。

🍉🍉🍉springboot代码 在云盘
链接:https://pan.baidu.com/s/1c5BmSkMWL7fMhhQPR25x2A?pwd=yh8z
提取码:yh8z

WechatController.java

package com.gcl.springdemo01;

import com.google.gson.Gson;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

@RestController
@RequestMapping("/wechat")
public class WechatController {

    @GetMapping("/demo")
    public String demo(){
        List<String> list = new ArrayList<>();
        list.add("a");
        list.add("b");
        list.add("c");
        return new Gson().toJson(list);
    }

}

打开浏览器访问查看数据 访问 :http://localhost:8081/wechat/demo

在这里插入图片描述

contact.wxml

<view>
  请求后台数据
  <text wx:for="{{list1}}">
    {{index}}, {{item}}
  </text>
</view>

contact.js

 /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    //请求本地环境
    const that = this;
    wx.request({
      url: 'http://localhost:8081/wechat/demo',
      success(res){
        that.setData({list1: res.data});
      }
    });
  },

我们把请求后台的方法直接写在了onLoad()方法中,会在页面加载后自动执行,这事就会执行wx.request()方法请求后台。如果请求成功,会执行函数success(),更新全局变量list1
想详细了解请看官方文档:点击

结果:
在这里插入图片描述

2.正式域名

🍉🍉🍉注:
小程序官方出于安全性方面考虑,对请求后台接口做了两个限制:

  • 只能请求HTTPS类型的接口
  • 必须将接口的域名添加到自己微信小程序的信任列表中

配置合法域名

①我们查看一下现有的合法域名:现在未设置
在这里插入图片描述
②打开微信公众平台->登录微信小程序管理后台 -> 开发->开发管理 -> 开发设置 -> 开始配置服务器域名 -> 修改 request 合法域名
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
🍉🍉🍉注:
注意我们登录微信小程序管理后台时,需要看看我们登录的账号是否对应小程序登录的账号
在这里插入图片描述

查看小程序登录账号:详情->基本信息->AppId
在这里插入图片描述

查看小程序测试账号的AppID
在这里插入图片描述

只有AppID相同时,我们设置的request合法域名才管用。

查看request合法域名:点击刷新

在这里插入图片描述

🧀我们通过代码来演示
🏀🏀🏀发起请求查看是否成功访问

contact.js

   /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    wx.request({
      url: 'https://www.baidu.com',
      method:'GET',
      success: (res)=> {
        console.log(res.data)
      }
    });
  },

可通过method参数设置请求的方式。
结果:

在这里插入图片描述

二、获取用户个人信息

1.展示当前用户的身份信息

我们可以通过<open-data>组件获取当前用户信息。

获取方法方法含义
userNickName用户昵称
userAvatarUrl用户头像
userGender用户性别
userCity用户所在城市
userProvince用户所在省份
userCountry用户所在国家
userLanguage用户的语言

🧀我们通过代码来演示
🏀🏀🏀访问当前用户昵称、头像

contact.wxml

<view>
  <open-data type="userAvatarUrl"></open-data>
  <open-data type="userNickName"></open-data>
</view>

在这里插入图片描述
🍉🍉🍉注:
<open-data>不需要用户授权,不需要登录。也正是因为这个原因,小程序不允许使用脚本读取<open-data>返回的信息。

2.获取用户的个人信息

想拿到用户的个人信息,需要得到官方授权。官方建议,通过按钮方式获取授权。

🧀我们通过代码来演示
🏀🏀🏀访问当前用户昵称、头像

contact.wxml

<view>
  <text class="title">hello {{name}}</text>
  <button open-type="getUserInfo" bindtap="getUserProfile" class="userLogin">
    授权获取用户个人信息
  </button>
</view>

contact.js

getUserProfile(e) {
    wx.getUserProfile({
      desc: '获取您的微信个人信息',
      success: (res) => {
        console.log("查看用户信息" , res.userInfo);
        this.setData({
          name: res.userInfo.nickName
        })
      },
      fail: (reason) => {
        console.log(reason.errMsg)
      }
    })
  },

目前发现授权的信息可以展示,但是授权的提示框没有展示,后续解决了更新上!大家也可以看看有啥好的办法,告诉我哦,谢谢!


总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了小程序远程数据请求和小程序获取个人信息的使用,下章我们再见。

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

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

相关文章

Vue电商项目--导航守卫

导航守卫理解 导航 守卫 导航&#xff1a;表示路由正在发送改变&#xff0c;进行路由跳转 守卫&#xff1a;你把它当中‘紫禁城守卫’ 全局守卫&#xff1a;你项目中&#xff0c;只要路由变化&#xff0c;守卫就能监听到。 举例&#xff1a;紫禁城【皇帝&#xff0c;太子】…

sk_buff操作函数学习

一. 前言 内核提供了大量实用的操作sk_buff的函数&#xff0c;在开发网络设备驱动程序和修改网络协议栈代码时需要用到。这些函数从功能上可以分为三类&#xff1a;创建&#xff0c;释放和复制socket buffer&#xff1b;操作sk_buff结构中的参数和指针&#xff1b;管理socket b…

XML 学习笔记 7:XSD

本文章内容参考自&#xff1a; W3school XSD 教程 Extensible Markup Language (XML) 1.0 (Second Edition) XML Schema 2001 XML Schema Part 2: Datatypes Second Edition 文章目录 1、XSD 是什么2、XSD 内置数据类型 - built-in datatypes2.1、基本数据类型 19 种2.1.1、基本…

从0到1自学网络安全(黑客)【附学习路线图+配套搭建资源】

前言 网络安全产业就像一个江湖&#xff0c;各色人等聚集。相对于欧美国家基础扎实&#xff08;懂加密、会防护、能挖洞、擅工程&#xff09;的众多名门正派&#xff0c;我国的人才更多的属于旁门左道&#xff08;很多白帽子可能会不服气&#xff09;&#xff0c;因此在未来的…

【STM32】小电流FOC驱控一体板(开源)

FOC驱控一体板 主控芯片stm32f103c8t6 驱动芯片drv8313 三相电流采样 根据B站一个UP主的改的&#xff08;【【自制】年轻人的第一块FOC驱动器】&#xff09;&#xff0c;大多数元器件是0805&#xff0c;实验室具备且便于自己动手焊接 。 晶振用的是无源晶振&#xff0c;体…

Bias Tee理论到实践

Bias Tees是将直流电压施加到必须传递RF/微波信号的任何组件的必不可少的组件&#xff0c;最常见的是需要DC电源的RF放大器。 对于窄带应用&#xff0c;bias tee设计和结构是简单的&#xff0c;只需要注意组件的自谐振频率。 然而&#xff0c;对于宽带应用&#xff0c;bias t…

基于瑞萨RA6M5的环境监测系统设计

基于瑞萨RA6M5的环境监测系统设计 1. 设计简介 本项目初步设计思路是打算以瑞萨单片机作为控制和数据处理的单元&#xff0c;使用温湿度&#xff0c;光照传感器去监测周围的环境参数&#xff0c;在屏幕上完成传感器数据和相关信息的显示。同时&#xff0c;使用WIFI无线模组与…

用于大型图像模型的 CNN 内核的最新内容

一、说明 由于OpenAI的ChatGPT的巨大成功引发了大语言模型的繁荣&#xff0c;许多人预见到大图像模型的下一个突破。在这个领域&#xff0c;可以提示视觉模型分析甚至生成图像和视频&#xff0c;其方式类似于我们目前提示 ChatGPT 的方式。 用于大型图像模型的最新深度学习方法…

Pytohn将matplotlib嵌入到tkinter中

文章目录 matplotlib窗口组成tkinter布局嵌入图像 matplotlib窗口组成 tkinter是Python标准库中自带的GUI工具&#xff0c;使用十分方便&#xff0c;如能将matplotlib嵌入到tkinter中&#xff0c;就可以做出相对专业的数据展示系统&#xff0c;很有竞争力。 在具体实现之前&a…

FTP使用教程

FTP使用教程 目录 一&#xff0e;FTP简介二&#xff0e;FTP搭建三&#xff0e;FTP使用 一&#xff0e;FTP简介 FTP中文为文件传输协议&#xff0c;简称为文传协议。它也是一个应用程序&#xff0c;不同的操作系统有不同的FTP应用程序&#xff0c;这些应用程序都遵守同一种协议以…

六寸相纸打印拼图 - opencv

准备自己打印一些照片&#xff0c;三寸相纸性价比低&#xff0c;只好买六寸来拼四张然后裁剪&#xff0c;不过并没有搜到提供了这个功能的工具&#xff0c;想想代码应该很简单&#xff0c;所以就造轮子了。可能其实有但是我没搜到。 轮子在这里&#xff1a; https://github.co…

ArraySetter

简介​ 用来展示属性类型为数组的 setter 展示​ 配置示例​ "setter": {"componentName": "ArraySetter","props": {"itemSetter": {"componentName": "ObjectSetter","props": {"c…

React 论文《ReAct: Synergizing Reasoning and Acting in Language Models》阅读笔记

文章目录 1. 简介论文摘要翻译动机和主要贡献 2. REACT : SYNERGIZING *RE*ASONING *ACT*ING3. KNOWLEDGE-INTENSIVE REASONING TASKS3.1 设置3.2 方法3.3 结果和观察 4. 决策任务5. 参考资料 1. 简介 论文摘要翻译 虽然大型语言模型&#xff08;LLM&#xff09;在自然语言理…

医疗实施-集成平台下门诊就诊流程详解

目录 集成平台下门诊就诊流程详解1.患者建档2. 门诊挂号3. 医生就诊4.处方开立5.费用收取、6、科室执行医嘱集成平台下门诊就诊流程详解 这篇文章是考虑医院使用了集成平台之后,门诊就诊流程详解。与我的文章《医疗实施-门诊就诊流程详解》的大致一样,供学有余力的人阅读。 …

图解java.util.concurrent并发包源码系列——深入理解ReentrantLock,看完可以吊打面试官

图解java.util.concurrent并发包源码系列——深入理解ReentrantLock&#xff0c;看完可以吊打面试官 ReentrantLock是什么&#xff0c;有什么作用ReentrantLock的使用ReentrantLock源码解析ReentrantLock#lock方法FairSync#tryAcquire方法NonfairSync#tryAcquire方法 Reentrant…

SpringBoot笔记:SpringBoot 集成 Dataway

文章目录 1、什么是 Dataway?2、主打场景3、技术架构4、整合SpringBoot4.1、maven 依赖4.2、初始化脚本4.3、整合 SpringBoot 5、Dataway 接口管理6、Mybatis 语法支持7、小结 1、什么是 Dataway? 官网地址&#xff1a;https://www.hasor.net/docs/guides/quickstart Da…

连通块是什么

刷题的时候遇到一个名词概念&#xff0c;连通块是什么&#xff1f; 在图论中&#xff0c;无向图中的连通块&#xff08;也叫作连通分量&#xff09;是指原图的一个子图&#xff08;即该子图只包含原图中的部分或全部顶点及边&#xff09;&#xff0c;该子图任意两个顶点都能通…

Swift 环境搭建

Swift是一门开源的编程语言&#xff0c;该语言用于开发OS X和iOS应用程序。 在正式开发应用程序前&#xff0c;我们需要搭建Swift开发环境&#xff0c;以便更好友好的使用各种开发工具和语言进行快速应用开发。由于Swift开发环境需要在OS X系统中运行&#xff0c;因此其环境的…

智能指针shared_ptr:自定义删除器

重点&#xff1a; 1.普通指针转化成智能指针。 2.智能指针创建的时候&#xff0c;第二个参数是自定义删除器&#xff0c;默认情况下&#xff0c;shared_ptr调用delete()函数。 class A { public:void Get() { cout << b << endl; }; private:int b{ 10 }; };clas…

Java 与其他编程语言:比较分析

Java 擅长可移植性和可靠性&#xff0c;Python 擅长通用性和简单性&#xff0c;JavaScript 擅长 Web 开发&#xff0c;C 擅长性能&#xff0c;Go 擅长效率。 在广阔的软件开发世界中&#xff0c;选择正确的编程语言对于任何项目的成功都至关重要。Java 是一种以其多功能性和可移…