当前位置: 首页 > article >正文

quickapp_快应用_系统接口应用

系统接口

在项目中使用到的接口都需要在配置文件manifest.json中声明,不然会报如下警告

[WARN] 请在 manifest.json 文件里声明项目代码中用到的接口: system.storage, service.account, system.package, system.webview
[1]检查某app是否在手机上安装
  • 官方文档:官方文档
  • 接口: system.package的hasInstalled方法
  • 作用:检查某app是否在已经在手机上安装
  • 使用
    • [1] 接口声明- 在配置文件manifest.json中声明
      "features": [
        {
          "name": "system.package" 
        },
      ]
      
    • [2] 在需要的地方导入并使用
        import pkg from '@system.package'
      
      pkg.hasInstalled({
        package: 'app包名',
        success: function(data) {
          console.log(`handling success: ${data.result}`)
          // result为true表示app已安装
          // result为false表示app未安装
        },
       fail: function(data, code) {
         console.log(`handling fail, code = ${code}`)
        }
      })
      
[2]下载应用
  • 官方文档:官方文档
  • 接口: system.package的install方法
  • 作用:下载某app
  • 使用
    • [1] 接口声明- 在配置文件manifest.json中声明
      "features": [
        {
          "name": "system.package" 
        },
      ]
      
    • [2] 在需要的地方导入并使用
      import pkg from '@system.package'
      
      pkg.install({
       package: '应用包名',
       success: function(data) {
         console.log(`handling success: ${data.result}`)
         // result:true 下载成功
         // result: false 下载失败
       },
       fail: function(data, code) {
         console.log(`handling fail, code = ${code}`)
       }
      })
      
[3] 检查当前是否有桌面应用
  • 官方文档:官方文档
  • 接口: system.shortcut的hasInstalled方法
  • 作用:检查某app当前是否有桌面应用
  • 使用
    • [1] 接口声明- 在配置文件manifest.json中声明
      "features": [
        {
          "name": "system.shortcut" 
        },
      ]
      
    • [2] 在需要的地方导入并使用
      import shortcut from '@system.shortcut'
      
      shortcut.hasInstalled({
       success: function(res) {
         // res 为true表示已创建图标
         // res weifalse表示未创建图标
       }
      })
      
[4] 添加桌面应用
  • 官方文档:官方文档
  • 接口: system.shortcut的install方法
  • 作用:为某app添加桌面应用
  • 使用
    • [1] 接口声明- 在配置文件manifest.json中声明
      "features": [
        {
          "name": "system.shortcut" 
        },
      ]
      
    • [2] 在需要的地方导入并使用
      import shortcut from '@system.shortcut'
      
      shortcut.install({
        success: function() {
          console.log('handling success') // 创建成功
        },
        fail: function(data, code) {
         // 创建失败,请在设置中开启创建桌面应用权限
         console.log(`handling fail, code = ${code}, errorMsg=${data}`)
        }
      })
      
[5]数据存储

本地数据存储

[6]弹框
  • 官方文档:官方文档
  • 弹出框一共有三种
    • toast提示框-showToast
    • dialog对话框-showDialog
    • 列表框-showContextMenu
[7]接口
  • 官方文档:官方文档
  • 请求封装
    import { fetch } from "@system.fetch";
    import { getStorage, setStorage } from './storage'
    const api = 'xxx' 
    
    const hasToken = async () => {
       const token = await getStorage('token')
       return !!token
    }
    
    // 将与后端约定的数据统一添加在请求头中
    const getHeaders = async () => {
       const token = await getStorage('token')
       return {
           token,
           ....
       }
    }
    
    export const httpGet = async (url, data = {}, header = {}) => {
     await hasToken()
     const headers = await getHeaders()
     return new Promise((resolve, reject) => {
       fetch({
         url: api + url,
         data,
         method: 'GET',
         responseType: 'json',
         header: {
           ...headers,
           ...header
         },
         success(data) {
           resolve(data.data)
         },
         fail(err) {
           reject(err)
         }
       })
     })
    }
    
    export const httpPost = async (url, data = {}, header = {}) => {
     await hasToken()
     const headers = await getHeaders()
     return new Promise((resolve, reject) => {
       fetch({
         url: api + url,
         data,
         method: 'POST',
         responseType: 'json',
         header: {
           ...header,
           ...headers
         },
         success(data) {
           if (data.data.status === 1004) {
             router.replace({
               uri: '/pages/Login'
             })
           } else {
             resolve(data.data)
           }
             
         },
         fail(err) {
           reject(err)
         }
       })
     })
    }
    
    export default {
     httpGet,
     httpPost
    }
    
    
  • 请求头添加设备信息
[8]获取设备信息

获取设备信息

  • 屏幕高度
  • 设备信息用于前后端对接
[9]获取上下文app

应用上下文app

  • 应用版本号

http://www.kler.cn/a/159452.html

相关文章:

  • flutter字体大小切换案例 小字体,标准字体,大字体,超大字体案例
  • 【Pikachu】任意文件上传实战
  • 《数学年刊A辑》
  • 学习rust语言宏之macro_rules!
  • 聊聊Flink:Flink的分区机制
  • 【CICD】CICD 持续集成与持续交付在测试中的应用
  • 咨询室游戏
  • java基础之String类
  • Django回顾【三】
  • 西南科技大学C++程序设计实验七(继承与派生二)
  • CONTROLLING VISION-LANGUAGE MODELS FOR MULTI-TASK IMAGE RESTORATION
  • AI模型平台Hugging Face存在API令牌漏洞;大型语言模型与任务模型
  • vue项目中添加刷新的按钮
  • C/C++ 前缀和与差分
  • 文章润色软件,免费的几款润色工具推荐
  • C语言速通笔记(41-62)
  • git submodule 用法
  • Python 调用企业微信群机器人发送消息及文件
  • flink源码分析之功能组件(四)-slot管理组件I
  • P5 Linux 标准C库函数
  • 嵌入式C语言中的关键字volatile
  • 【C++】三大特性 --- 继承的详细讲解
  • 数据结构初阶之二叉树性质练习与代码练习
  • 最新关于openai.APIConnectionError: Connection error.的解决方法
  • vr工业制造流程3D模拟仿真可视化展示
  • 批量AI创作文案的工具,批量AI创作文章的软件