当前位置:首页 > uni-app

uniapp对接接口

2026-02-06 12:10:03uni-app

对接接口的基本流程

在UniApp中对接接口通常涉及发送HTTP请求到后端服务器并处理返回的数据。UniApp内置了uni.request方法,支持发起GET、POST等请求。

封装请求方法

建议将请求封装为统一的工具函数,便于管理和维护。以下是一个简单的封装示例:

// utils/request.js
const baseURL = 'https://your-api-domain.com/api';

export const request = (options) => {
  return new Promise((resolve, reject) => {
    uni.request({
      url: baseURL + options.url,
      method: options.method || 'GET',
      data: options.data || {},
      header: {
        'Content-Type': 'application/json',
        'Authorization': uni.getStorageSync('token') || ''
      },
      success: (res) => {
        if (res.statusCode === 200) {
          resolve(res.data);
        } else {
          reject(res.data);
        }
      },
      fail: (err) => {
        reject(err);
      }
    });
  });
};

调用接口示例

在页面或组件中引入封装好的请求方法,调用接口获取数据:

import { request } from '@/utils/request';

// GET请求示例
request({
  url: '/user/info',
  method: 'GET'
}).then(res => {
  console.log('接口返回数据:', res);
}).catch(err => {
  console.error('请求失败:', err);
});

// POST请求示例
request({
  url: '/login',
  method: 'POST',
  data: {
    username: 'admin',
    password: '123456'
  }
}).then(res => {
  console.log('登录成功:', res);
});

处理跨域问题

开发环境中可能会遇到跨域问题,可以通过以下方式解决:

  • 后端配置CORS,允许前端域名访问
  • 开发阶段使用HBuilderX内置的浏览器调试(自带跨域处理)
  • 配置代理,修改manifest.json文件:
"h5": {
  "devServer": {
    "proxy": {
      "/api": {
        "target": "https://your-api-domain.com",
        "changeOrigin": true,
        "pathRewrite": {
          "^/api": ""
        }
      }
    }
  }
}

接口安全处理

为保证接口安全,建议采取以下措施:

  • 使用HTTPS协议传输数据
  • 敏感数据加密传输
  • 接口添加身份验证,如JWT Token
  • 重要操作接口添加签名验证

错误处理

统一处理接口返回的错误码和异常情况:

request({
  url: '/some/api',
  method: 'GET'
}).then(res => {
  if (res.code === 0) {
    // 成功逻辑
  } else {
    uni.showToast({
      title: res.message || '请求失败',
      icon: 'none'
    });
  }
}).catch(err => {
  uni.showToast({
    title: '网络错误,请稍后重试',
    icon: 'none'
  });
});

上传文件接口

使用uni.uploadFile实现文件上传功能:

uni.chooseImage({
  success: (chooseResult) => {
    uni.uploadFile({
      url: 'https://your-api-domain.com/upload',
      filePath: chooseResult.tempFilePaths[0],
      name: 'file',
      formData: {
        'user': 'test'
      },
      success: (uploadRes) => {
        console.log('上传成功:', uploadRes.data);
      }
    });
  }
});

WebSocket连接

对于实时通信需求,可以使用WebSocket:

const socket = uni.connectSocket({
  url: 'wss://your-api-domain.com/ws',
  success: () => {
    console.log('连接成功');
  }
});

socket.onOpen(() => {
  console.log('WebSocket已打开');
});

socket.onMessage((res) => {
  console.log('收到消息:', res.data);
});

socket.onClose(() => {
  console.log('WebSocket已关闭');
});

uniapp对接接口

标签: 接口uniapp
分享给朋友:

相关文章

vue实现接口

vue实现接口

在 Vue 中实现接口请求 Vue 本身不直接提供 HTTP 请求功能,通常需要借助第三方库如 axios 或 fetch 来实现接口请求。以下是几种常见方法: 使用 axios 发送请求 安装…

uniapp教程

uniapp教程

uniapp 基础介绍 uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布(如微信小程序、H5、App、快应用等)。其核心优势在于代码复用率高,学习成本低,适合快速构建多…

uniapp部署到服务器

uniapp部署到服务器

部署准备 确保本地开发环境已完成项目构建,生成静态文件(H5端为/dist/build/h5目录)。检查服务器环境是否安装Nginx/Apache等Web服务软件,并配置好域名解析。 上传文件 通过…

uniapp模板库

uniapp模板库

uniapp模板库推荐 官方模板库 uni-app官方提供多个模板,涵盖电商、社交、新闻等多个领域。这些模板可直接在HBuilderX中通过新建项目选择,包含基础结构和常用功能模块,适合快速启动项目。…

uniapp视频

uniapp视频

uniapp视频开发基础 uniapp支持通过video组件实现视频播放功能,该组件兼容多端(H5、小程序、App等),基本用法如下: <template> <video…

uniapp组件

uniapp组件

uniapp组件基础概念 uniapp的组件系统基于Vue.js,支持跨平台开发(H5、小程序、App等)。组件分为内置基础组件(如<view>、<button>)和自定义组件…