如何在 iOS 项目中集成 MiniApp SDK,快速构建智能小程序?

news2024/12/26 9:23:21

本文介绍如何在 iOS 项目中,集成 MiniApp SDK,使之能够构建智能生活小程序,运行在你的 IoT App 上。

准备工作

在集成 MiniApp SDK 之前,您需要在 涂鸦 IoT 开发平台 上:

  • 注册开发者账号、创建产品、创建功能点等。
  • 创建智能生活 App SDK,然后获取激活 SDK 的密钥,以保证小程序功能的正常运行。具体操作流程可参考:准备工作。

前提条件

请确保已经集成了涂鸦 智能生活 App SDK。具体集成方式,请参考 集成 SDK。

集成 SDK

MiniApp SDK 目前支持 pod 集成。

  1. 安装 Pod 环境。

    MiniApp SDK 的组件依赖于 CocoaPods 管理,所以首先需要在您的运行环境 安装 CocoaPods。

    sudo gem install cocoapods
    pod setup
    
  2. 创建 Podfile 文件。

    打开项目根目录,确认项目根目录下是否存在 Podfile 文件,不存在则创建。

    touch Podile
    

    Podfile 文件中新增以下内容:

    source 'https://github.com/tuya/tuya-pod-specs.git'
    platform :ios, '11.0'
    inhibit_all_warnings!
    
    target 'Your_Project_Name' do
        pod "ThingSmartMiniAppBizBundle"
    end
    
  3. 更新 CocoaPods 依赖。

    // 更新repo源&组件版本
    pod update
    // 更新组件版本
    pod update --no-repo-update
    

增加权限描述

为了保护用户隐私,苹果要求 App 必须申请相关的权限才可以使用某些系统能力。例如,相机、相册、蓝牙、麦克风和位置等。

权限名称权限 Key权限涉及 API
相册读取NSPhotoLibraryUsageDescription
  • chooseImage
  • chooseMedia
相册写入NSPhotoLibraryAddUsageDescriptionsaveToAlbum
相机NSCameraUsageDescription
  • scanCode
  • chooseImage
  • chooseMedia
蓝牙NSBluetoothAlwaysUsageDescriptionNSBluetoothPeripheralUsageDescription配网相关 API、设备控制相关 API
麦克风NSMicrophoneUsageDescriptionchooseMedia

设备支持方向

集成 SDK

小程序页面支持横竖屏切换。如果您有页面切换横竖屏的需求,请首先在项目工程内配置 App 支持的横竖屏模式。

 

打开小程序

头文件依赖

#import <ThingSmartMiniAppBizBundle/ThingSmartMiniAppBizBundle.h>

打开小程序

// 通过小程序 ID 打开小程序
[[ThingMiniAppClient coreClient] openMiniAppByAppId:@"tydhopggfziofo1h9h"];

// 通过 URL 打开小程序
[[ThingMiniAppClient coreClient] openMiniAppByUrl:@"godzilla://tydhopggfziofo1h9h/" params:@{}];

// 通过二维码打开小程序
[[ThingMiniAppClient coreClient] openMiniAppByQrcode:@"qrcodeString" params:@{}];

引入能力包

为了使小程序拥有更多的可能性,涂鸦针对一些常用的能力做了包装,并且提供了不同的能力包以供选择。大家只需要将所需的能力包集成到工程中,就可以调用相应能力包中的 API,实现业务功能的开发。

基础能力包

基础能力包,与腾讯微信小程序大部分 API 类似,包括上传、下载、录音、交互、文件操作等 API。建议您默认集成基础能力包。

pod 'ThingSmartBaseKitBizBundle'

业务能力包

业务能力包提供了开发过程中一些常用涂鸦业务体系下的 API,包括查询多语言、打开控制面板等。建议默认集成业务能力包。

pod 'ThingSmartBizKitBizBundle'

家庭管理能力包

家庭管理能力主要包括以 家庭 为单位的信息查询等能力,是一些涂鸦业务管理的基础条件。家庭 是场景智能执行的最大单位。如需集成家庭管理能力包,在以上能力依赖的基础上,大家还需要额外集成 家庭管理 UI 业务包。

设备控制能力包

设备控制能力包是对设备控制相关能力的封装,能实现控制、监听、移除设备。如有需求,可参考 设备控制业务包接入文档。

pod 'ThingSmartDeviceKitBizBundle'

如果需要使用设备控制中蓝牙相关的能力,还需要集成如下组件:

pod 'ThingBLEInterfaceImpl'
pod 'ThingBLEMeshInterfaceImpl'

地图能力包

地图能力包是对地图相关能力的封装,包括获取位置、地理围栏等。

pod 'ThingSmartMapKitBizBundle'

媒体能力包

媒体能力包是对视频和相机的封装,您在使用 video 和 camera 媒体组件时,需要集成媒体能力包。

pod 'ThingSmartMediaKitBizBundle'

配网能力包

配网能力包是对配网流程的封装,提供了配网流程中所涉及的 API。您自建配网流程时,需要集成配网能力包。

pod 'ThingSmartPlayNetKitBizBundle'

P2P 传输能力包

P2P 传输能力包是对 P2P 建连/传输等能力的封装,包含 P2P 的初始化、连接、上传、下载和销毁等功能。适用于扫地机、门锁和 IPC 等。

pod 'ThingSmartP2PKitBizBundle'

👉 立即免费领取开发资源,体验涂鸦 MiniApp 小程序开发。 

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

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

相关文章

汇智知了堂:AIGC引领数字营销新革命,你准备好了吗?

ChatGPT火了&#xff0c;带火的还有AIGC。 经过长时间的蓄力&#xff0c;AIGC技术落地的应用场景呈平铺式展开&#xff0c;已经逐渐渗透到各行各业中&#xff0c;AIGC时代已来。 AIGC浪潮来袭&#xff0c;电商行业从业者该如何应对&#xff1f; AIGC技术会给电商行业带来哪些变…

排序算法—快速排序

文章目录 快速排序一、递归实现二、非递归实现总结 快速排序 以下均以排升序为最终目的。 一、递归实现 有一个排序能解决所有问题吗&#xff1f;没有&#xff01;不过&#xff0c;快速排序这种排序适用于大多数情况。 我们前面讨论排序算法一般都是先讨论一趟的情况&#…

传输层 --- TCP (上篇)

目录 1. TCP 1.1. TCP协议段格式 1.2. TCP的两个问题 1.3. 如何理解可靠性 1.4. 理解确认应答机制 2. TCP 报头中字段的分析 2.1. 序号和确认序号 2.1.1. 序号和确认序号的初步认识 2.1.2. 如何正确理解序号和确认序号 2.2. TCP是如何做到全双工的 2.3. 16位窗口大小…

TypeScript系列之-理解TypeScript类型系统画图讲解

TypeScript的输入输出 如果我们把 Typescript 编译器看成一个黑盒的话。其输入则是使用 TypeScript 语法书写的文本或者文本集合。 输出是编译之后的 JS 文件 和 .d.ts 的声明文件 其中 JS 是将来需要运行的文件(里面是没有ts语法&#xff0c;有一个类型擦除的操作)&#xff0…

Shopee虾皮100%有效提高广告效果的案例分享

Shopee 店铺运营中存在三种广告类型&#xff0c;分别是:关键词广告、关联广告和店铺广告。其中使用最为普遍&#xff0c;主控权最为直接的就是关键词广告&#xff0c;TA的适用范围最广&#xff0c;起效最快&#xff0c;并且可根据自身运营的能力去调控投入产出比&#xff0c;深…

【Python】基础(专版提升1)

Python基础 1. 导学1.1 学习理念1.1.1 弱语法&#xff0c;重本质1.1.2 是技术&#xff0c;更艺术 1.2 学习方法1.2.1 当天知识必须理解 2. Python 简介2.1 计算机基础结构2.1.1 硬件2.1.2 软件 2.2 基础知识2.2.1 Python介绍2.2.1.1定义2.2.1.2优势2.2.1.3从业岗位 2.2.2 Pytho…

数学基础:常见函数图像

来自&#xff1a; https://www.desmos.com/calculator/l3u8133jwj?langzh-CN 推荐: https://www.shuxuele.com/index.html 一、三角函数 1.1 正弦 sin(x) 1.2 余弦 cos(x) 1.3 正切 tan(x) 1.4 余切 cot(x) 1.5 正弦余弦综合 1.6 正切余切综合 二、指数对数

[C语言]——柔性数组

目录 一.柔性数组的特点 二.柔性数组的使用 三.柔性数组的优势 C99中&#xff0c;结构体中的最后⼀个元素允许是未知大小的数组&#xff0c;这就叫做『柔性数组』成员。 typedef struct st_type //typedef可以不写 { int i;int a[0];//柔性数组成员 }type_a; 有些编译器会…

14:00面试,15:00才出来,直接给我问麻了。。

从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天必不可少的&#xff0c;看在钱给的比较多的份上&#xff0c;就不太计较了。没想到3月一纸通知&#xff0c;所有人不准加班&#xff0c;加班费不仅没有了&#xff0c;薪资还要降40%…

基础语法复习

常用的定义&#xff1a; 读取数据加速&#xff1a; input sys.stdin.readline 设置递归深度&#xff1a; sys.setrecursionlimit(100000) 记忆化搜索&#xff1a; from functools import lru_cache lru_cache(maxsizeNone) 计数器&#xff1a; Counter 类是一个非常有…

Spring Cloud微服务入门(五)

Sentinel的安装与使用 安装部署Sentinel 下载Sentinel&#xff1a; https://github.com/alibaba/Sentinel/releases Sentinel控制台 https://localhost:8080 用户和密码为sentinel 使用Sentinel 加依赖&#xff1a; 写配置&#xff1a; 输入&#xff1a; java -Dserver.po…

【React】React hooks 清除定时器并验证效果

React hooks 清除定时器并验证效果 目录结构如下useTime hookClock.tsx使用useTime hookApp.tsx显示Clock组件显示时间&#xff08;开启定时器&#xff09;隐藏时间&#xff08;清除定时器&#xff09; 总结参考 目录结构如下 useTime hook // src/hooks/common.ts import { u…

lora微调过程

import os import pickle from transformers import AutoModelForCausalLM from peft import get_peft_config, get_peft_model, get_peft_model_state_dict, LoraConfig, TaskTypedevice "cuda:0"#1.创建lora微调基本的配置 peft_config LoraConfig(task_typeTask…

CAN和LIN的DB9接口定义

文章目录 前言一、DB9实物及引脚二、LIN DB9三、CAN DB9总结前言 在日常汽车总线测试中,最主要的通信网络就是CAN网络,小伙伴们在测试时,经常会遇到使用DB9插头来测试、录取CAN总线报文,但是DB9插头内有9个插针,哪2个才是CAN-H和CAN-L呢? 一、DB9实物及引脚 DB9 接口是…

杨辉三角形(蓝桥杯,acwing)

题目描述&#xff1a; 下面的图形是著名的杨辉三角形&#xff1a; 如果我们按从上到下、从左到右的顺序把所有数排成一列&#xff0c;可以得到如下数列&#xff1a; 1, 1, 1, 1, 2, 1, 1, 3, 3, 1, 1, 4, 6, 4, 1, ... 给定一个正整数 N&#xff0c;请你输出数列中第一次出现…

实验:基于Red Hat Enterprise Linux系统建立逻辑卷并进行划分

目录 一. 实验目的 二. 实验内容 三. 实验设计描述及实验结果 1. 为虚拟机添加三块大小为5GB的磁盘nvme0n2 nvme0n3 nvme0n4 2. 将三块硬盘转换为物理卷&#xff0c;并将nvme0n2 nvme0n3两pv建立成名为"自己名字_vg“的卷组&#xff0c;并将nvme0n4扩展进该卷组。 LVM管…

os.listdir()bug总结

今天测试出一个神奇的bug&#xff0c;算是教训吧&#xff0c;找了两天不知道问题在哪&#xff0c;最后才发现问题出现在这 原始文件夹显示 os.listdir()结果乱序 import os base_path "./file/"files os.listdir(base_path)print(files)问题原因 解决办法(排序) …

【论文解读】大模型事实性调查(上)

一、简要介绍 本调查探讨了大型语言模型&#xff08;llm&#xff09;中的事实性的关键问题。随着llm在不同领域的应用&#xff0c;其输出的可靠性和准确性变得至关重要。论文将“事实性问题”定义为llm产生与既定事实不一致的内容的概率。论文首先深入研究了这些不准确性的含义…

IO-DAY8

使用消息队列去实现2个终端之间的互相聊天 要求:千万不要做出来2个终端之间的消息发送是读一写的&#xff0c;一定要能够做到&#xff0c;一个终端发送n条消息&#xff0c;另一个终端一条消息都不回复 A终端&#xff1a; #include<myhead.h> typedef struct msgbuf {lon…

B02、执行引擎-5

1、前言 1.1、什么是机器码 各种用二进制编码方式表示的指令&#xff0c;叫做机器指令码。开始&#xff0c;人们就用它采编写程序&#xff0c;这就是机器语言。机器语言虽然能够被计算机理解和接受&#xff0c;但和人们的语言差别太大&#xff0c;不易被人们理解和记忆&#x…