09-微信小程序 网络请求API(实现轮播广告和简易的聊天窗口)

这篇具有很好参考价值的文章主要介绍了09-微信小程序 网络请求API(实现轮播广告和简易的聊天窗口)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

09-微信小程序API网络请求(实现轮播广告和简易的聊天窗口)

微信小程序API

做项目的开发,一定离不开网络相关的操作,小程序做的都是客户端,客户端请求服务端做一些交互。

微信小程序提供的API的方式,通过API的方式可以调用微信提供的强大的功能,以增强小程序的功能,如:网络请 求、拍照、扫码等;详见以下官方文档。

官方文档

09-微信小程序 网络请求API(实现轮播广告和简易的聊天窗口),微信小程序从0到1(2023),微信小程序,网络,小程序

如果单纯的做一些网页,用到拍照扫描等,需要写好多代码,现在可以调用微信封装好的API来实现。下面我们看一下微信api 的这些官方文档

服务器域名配置注意

在小程序/小游戏中使用网络相关的 API 时,需要注意下列问题,请开发者提前了解。

  • 每个微信小程序需要事先设置通讯域名,小程序只可以跟指定的域名进行网络通信
  • 域名只支持 https (wx.request、wx.uploadFile、wx.downloadFile) 和 wss (wx.connectSocket) 协议;
  • 域名不能使用 IP 地址(小程序的局域网 IP 除外)或 localhost;
  • 等等详见以下官方文档标红记录

官方文档

09-微信小程序 网络请求API(实现轮播广告和简易的聊天窗口),微信小程序从0到1(2023),微信小程序,网络,小程序

网络相关API

request

发起 HTTPS 网络请求。使用前请注意阅读相关说明。

通过request对象进行网络通信操作。

说明: 每个微信小程序需要事先设置一个通讯域名,小程序只可以跟指定的域名与进行网络通信。包括普通 HTTPS 请求(wx.request)、上传文件(wx.uploadFile)、下载文件(wx.downloadFile) 和 WebSocket 通信 (vconnectSocket)

  • 用法:RequestTask wx.request(Object object)

  • 参数 Object object wx.request

属性 类型 默认值 必填 说明 最低版本
url string 开发者服务器接口地址
data string/object/ArrayBuffer 请求的参数
header Object 设置请求的 header,header 中不能设置 Referer。 content-type 默认为 application/json
timeout number 超时时间,单位为毫秒。默认值为 60000 2.10.0
method string GET HTTP 请求方法
dataType string json 返回的数据格式
responseType string text 响应的数据类型 1.7.0
enableHttp2 boolean false 开启 http2 2.10.4
enableQuic boolean false 开启 quic 2.10.4
enableCache boolean false 开启 cache 2.10.4
enableHttpDNS boolean false 是否开启 HttpDNS 服务。如开启,需要同时填入 httpDNSServiceId 。 HttpDNS 用法详见 移动解析HttpDNS 2.19.1
httpDNSServiceId string HttpDNS 服务商 Id。 HttpDNS 用法详见 移动解析HttpDNS 2.19.1
enableChunked boolean false 开启 transfer-encoding chunked。 2.20.2
forceCellularNetwork boolean false wifi下使用移动网络发送请求 2.21.0
success function 接口调用成功的回调函数
fail function 接口调用失败的回调函数
complete function 接口调用结束的回调函数(调用成功、失败都会执行)
RequestTask 请求任务对象

data 参数说明

最终发送给服务器的数据是 String 类型,如果传入的 data 不是 String 类型,会被转换成 String 。转换规则如下:

  • 对于 GET 方法的数据,会将数据转换成 query string(encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...
  • 对于 POST 方法且 header['content-type']application/json 的数据,会对数据进行 JSON 序列化
  • 对于 POST 方法且 header['content-type']application/x-www-form-urlencoded 的数据,会将数据转换成 query string (encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...)
方法 描述
RequestTask.abort() 中断请求任务
RequestTask.onHeadersReceived(function listener) 监听 HTTP Response Header 事件。会比请求完成事件更早
RequestTask.offHeadersReceived(function listener) 移除 HTTP Response Header 事件的监听函数
RequestTask.onChunkReceived(function listener) 监听 Transfer-Encoding Chunk Received 事件。当接收到新的chunk时触发。
RequestTask.offChunkReceived(function listener) 移除 Transfer-Encoding Chunk Received 事件的监听函数

object.method 的合法值

合法值 说明
OPTIONS HTTP 请求 OPTIONS
GET HTTP 请求 GET
HEAD HTTP 请求 HEAD
POST HTTP 请求 POST
PUT HTTP 请求 PUT
DELETE HTTP 请求 DELETE
TRACE HTTP 请求 TRACE
CONNECT HTTP 请求 CONNECT

object.dataType 的合法值

合法值 说明
json 返回的数据为 JSON,返回后会对返回的数据进行一次 JSON.parse
其他 不对返回的内容进行 JSON.parse

object.responseType 的合法值

合法值 说明
text 响应的数据为文本
arraybuffer 响应的数据为 ArrayBuffer
object.success 回调函数

Object res

属性 类型 说明 最低版本
data string/Object/Arraybuffer 开发者服务器返回的数据
statusCode number 开发者服务器返回的 HTTP 状态码
header Object 开发者服务器返回的 HTTP Response Header 1.2.0
cookies Array. 开发者服务器返回的 cookies,格式为字符串数组 2.10.0
profile Object 网络请求过程中一些调试信息,查看详细说明 2.10.4
exception Object 网络请求过程中的一些异常信息,例如httpdns重试等 3.0.0
object.fail 回调函数

Object err

属性 类型 说明 最低版本
errMsg String 错误信息
errno Number errno 错误码,错误码的详细说明参考 Errno错误码 2.24.0
案例代码(实现轮播图)
  • 轮播广告页面代码

index.wxml

<swiper indicator-dots="true" autoplay="true" interval="3000" duration="500">
  <swiper-item wx:for="{{images}}">
    <image src="{{item.original}}" width="375" height="150" />
  </swiper-item>
</swiper>

循环 images 图片数据,这个数据需要在data中做设置,进入index.js中,设置images数组,默认空

  /**
   * 页面的初始数据
   * 默认设置 images 空的数组
   */ 
data: {
    images:[] 
    },

在写一个方法,去加载数据

  //加载广告数据
  loadDate() {
        },

在onLoad 中做加载,调用this.loadDate();方法

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad:function(options) {
    console.log("页面加载完成",options);
    this.loadDate();
  },

现在编写loadDate();方法逻辑

可以拷贝官网中的示例代码做修改

09-微信小程序 网络请求API(实现轮播广告和简易的聊天窗口),微信小程序从0到1(2023),微信小程序,网络,小程序

拷贝以上参考文档中的示例代码做如下修改

  • 首先是url修改为自己用的, 找到自己项目的url

index.js

//demo/index.js
Page({
  data: {
    images: []
  },
  loadData() {
    const _this = this;
    wx.showLoading({
      title: '加载中',
    });
    wx.request({
      url: 'http://127.0.0.1:18080/ad?type=1',
      success(res) {
        _this.setData({
          images: res.data.data.list
        });
        wx.hideLoading();
      }
    })
  },
  onLoad(options) {
    this.loadData();
  }
})

WebSocket

案例代码(实现简易的聊天面板)

新建一个im 文件,im文件下新建 im.wxml

全局 app.json 中配置 im 页面

{
  "pages":[
    "pages/index/index",
    "pages/logs/logs",
    "pages/demo/index",
    "pages/im/im"
  ],
  "window":{
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#80ff80",
    "navigationBarTitleText": "我的第一个微信小程序",
    "navigationBarTextStyle":"black"
  },
  "tabBar": {
    "list": [
      {
        "pagePath": "pages/index/index",
        "text":"首页"
      },
      {
        "pagePath": "pages/logs/logs",
        "text":"日志"
      },
      {
        "pagePath": "pages/demo/index",
        "text":"Demo"
      },
      {
        "pagePath": "pages/im/im",
        "text":"IM"
      }
    ]
  },
  "style": "v2",
  "sitemapLocation": "sitemap.json"
}

将案例代码拷贝到 im.wxml

/* pages/im/im.wxml*/

<input name="url" value="ws://127.0.0.1:18081/ws/1001" bindinput="urlInput" />
<button size='mini' type="warn">断开连接</button>
<button size='mini' type="primary" bindtap="connectSocket">开启连接</button>
<textarea placeholder="输入发送内容" bindinput="msgInput"></textarea>
<button size='mini' type="primary" bindtap="sendMsg">发送</button>
<view wx:for="{{msgs}}">{{index}}: {{item}}</view>

im.wxss中调整样式

/* pages/im/im.wxss */

input,textarea{
  border: 1px black solid;
}

button,input,textarea,view{
  margin: 10px;
}

效果图

09-微信小程序 网络请求API(实现轮播广告和简易的聊天窗口),微信小程序从0到1(2023),微信小程序,网络,小程序

im.js 中写个connectSocket方法来创建连接

可以参考官网拷贝代码修改

09-微信小程序 网络请求API(实现轮播广告和简易的聊天窗口),微信小程序从0到1(2023),微信小程序,网络,小程序

// pages/im/index.js
Page({
  /**
  * 页面的初始数据
  */
  data: {
    url: 'ws://127.0.0.1:18081/ws/1001',
    msgs: [],
    msg: ''
  },
  connectSocket() {
    let _this = this;
    let task = wx.connectSocket({
      url: _this.data.url
    });
    task.onMessage(function (res) {
      let data = JSON.parse(res.data);
      let msg = data.from.id + ", " + data.msg;
      _this.setData({
        msgs: [..._this.data.msgs, "接收到消息 -> " + msg]
      });
    });
    _this.setData({
      socketTask: task,
      msgs: [..._this.data.msgs, "连接成功!"]
    });
  },
  urlInput(e) {
    this.setData({
      url: e.detail.value
    });
  },
  msgInput(e) {
    this.setData({
      msg: e.detail.value
    });
  },
  sendMsg() {
    let msg = this.data.msg;
    this.data.socketTask.send({
      data: msg
    });
    this.setData({
      msgs: [...this.data.msgs, "发送消息 -> " + msg]
    });
  }
})

效果图

09-微信小程序 网络请求API(实现轮播广告和简易的聊天窗口),微信小程序从0到1(2023),微信小程序,网络,小程序文章来源地址https://www.toymoban.com/news/detail-678871.html

到了这里,关于09-微信小程序 网络请求API(实现轮播广告和简易的聊天窗口)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 原生微信小程序中进行 API 请求

    当在原生微信小程序中进行 API 请求时,封装请求可以提高代码的可维护性和可扩展性。在本篇博客中,我们将一步步介绍如何进一步封装请求,并添加请求超时、拦截器和请求取消功能。 第一步:基本请求封装 首先,我们创建一个用于发送 HTTP 请求的基本封装。在微信小程

    2024年02月07日
    浏览(34)
  • 微信小程序02-轮播图实现与图片点击跳转

    在小程序01中,已经学习了如何制作底部导航栏,本节让我们一起学习如何制作轮播图,以及点击轮播图完成页面跳转。 注:(1)前期学习,我这里用的本地的图片,后期的话,会对接后端接口,动态获取数据,前期方便学习,就暂时用的本地图片。(2)关于图片跳转地址

    2024年02月16日
    浏览(48)
  • 微信小程序毕业设计作品成品(09)微信小程序疫苗接种预约系统设计与实现

    博主介绍: 《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月07日
    浏览(65)
  • uniapp 微信小程序 封装公共的请求js(api版本)

    一、新建api文件夹 在项目目录下创建api文件夹,内放files跟index.js文件夹,files文件夹内放每个页面对应的js请求接口 1、index.js 2、例如:login.js 二、config.js 三、main.js 四、页面使用

    2024年02月14日
    浏览(35)
  • 解决微信小程序swiper轮播图撑不满有留白 实现swiper轮播图撑满父容器

    问题 :如下图,swiper轮播图两侧会有留白,没有撑满swiper 失败的尝试 : 1.调整图片尺寸 2.设属性设置image的mode为scaleToFill 3.设置item的属性 都没能实现将图片填充满轮播图,图片会有右侧和底部两块留白 通过调试器查看到image区域很小,怀疑是image本身属性的问题 随后尝试在

    2024年04月25日
    浏览(33)
  • 微信小程序-----网络数据请求

    目录 前言 一、 小程序中网络数据请求的限制 二、配置 request 合法域名 三、发起 GET 请求  四、发起 POST 请求 五、在页面刚加载时请求数据 六、跳过 request 合法域名校验 七、关于跨域和 Ajax 的说明         本期我们学习微信小程序中如何发起网络数据请求,通过网络数据

    2024年02月19日
    浏览(31)
  • 微信小程序网络请求封装

    网络请求地址放到url.js中,分别制定开发环境,体验环境,线上环境 网络请求的方法放到request.js中,暴露get、post、wxLogin方法 请求前显示加载中,请求结束后隐藏加载中 请求的接口方法,放到api.js中,并调用request.js中对应的方法 2.1 请求地址(url.js) 2.3 具体的请求方法(api.

    2024年02月15日
    浏览(28)
  • 微信小程序中发送网络请求

    代码涉及的主要文件有: app.json pages/index/index.wxml pages/index/index.wxss pages/index/index.js 微信小程序提供了 wx.request(Object object) 这个API,用于发送网络请求,该API接受一个对象作为参数,该对象包含多个属性,其中常用的有: url ,请求的地址,string类型,必填。 data ,请求的参数

    2024年02月09日
    浏览(34)
  • 微信小程序:文本读写与网络请求

    一、本地用户文件读写: 1.普通接口操作文件: (1)写入文件内容: (2)读取文件内容: 2.FD接口操作文件(适用大量文件操作): (1)写入文件内容: (2)读取文件内容: 二、网络请求: 配置服务器域名: 进入以下地址,在服务器域名 - 点击修改按钮, 添加\\\"request合法域名、upl

    2024年02月15日
    浏览(28)
  • 【小程序教程】微信小程序之request网络请求

    微信小程序提供了request网络请求的API,可以用于与后台服务器进行数据交互,实现数据的获取和提交等功能。在本文中,将介绍如何使用request网络请求API,并提供一个示例代码,帮助大家更好地理解。 使用request网络请求API的步骤如下: 在小程序页面中,需要在页面或者组

    2024年02月04日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包