当前位置:首页 > 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);
      }
    });
  });
};

调用接口示例

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

uniapp对接接口

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": ""
        }
      }
    }
  }
}

接口安全处理

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

uniapp对接接口

  • 使用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 极光推送

uniapp 极光推送

uniapp 集成极光推送的方法 在 uniapp 中集成极光推送,需要使用官方提供的插件或自行封装原生模块。以下是具体实现方式: 使用官方插件 在 uni-app 插件市场搜索「极光推送」插件,…

uniapp部署到服务器

uniapp部署到服务器

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

uniapp发布到应用商店

uniapp发布到应用商店

发布到苹果App Store 确保开发者账号已注册并加入Apple Developer Program,年费99美元。在Xcode中生成iOS发布证书(.p12)和描述文件(Provisioning…

uniapp请求超时处理

uniapp请求超时处理

uniapp请求超时处理方法 在uniapp中处理请求超时可以通过多种方式实现,以下是几种常见的处理策略: 设置全局请求超时时间 在main.js中配置全局请求超时时间,适用于所有请求: uni…

uniapp审批

uniapp审批

uniapp审批流程实现 在uniapp中实现审批功能,通常需要结合前端界面和后端逻辑。以下是几种常见的实现方式: 前端界面设计 使用uniapp的组件和API构建审批界面,包括表单提交、审批列表展…

房产uniapp

房产uniapp

房产类UniApp开发指南 UniApp作为跨平台开发框架,适用于快速构建房产类应用(如二手房交易、租房平台、新房展示等)。以下是关键开发要点和实现方法: 技术选型与框架配置 跨平台适配:使…