GMU小程序SDK API(iOS)

概述

这里介绍GMU小程序SDK提供了哪些能力及API的详细说明和调用示例。

基础功能

1. 小程序SDK初始化

在使用小程序的API之前,需要先初始化小程序SDK。只有成功初始化之后,才能使用SDK提供的API。

/// SDK初始化方法
+ (void)startWithConfig:(GMUMiniConfig *)config;
@interface GMUMiniConfig : NSObject

/// e.g. https://xxx.yyy.com
@property (nonatomic, copy, nullable) NSString *server;

/// e.g. 56f3ac73240c41ad9eab3322d1e4197d
@property (nonatomic, copy) NSString *appKey;

/// e.g. 155f10f08688425aa34265f4b9743f1e
@property (nonatomic, copy) NSString *appSecret;

+ (instancetype)configWithServer:(nullable NSString *)server appKey:(NSString *)appKey appSecret:(NSString *)appSecret;

@end

参数说明:

  • config:SDK初始化配置对象,配置对象需要提供必需的appKeyappSecret。如果SDK需要连接1.0私有云平台,可为配置对象提供server属性来指定私有云服务器;详见:appKey与appSecret的获取方式

示例代码:

// GMU小程序SDK初始化
GMUMiniConfig *config = [GMUMiniConfig configWithServer:@"https://mpapi.lightyy.com" appKey:@"dccb4620558611eba8b31fd740d1b30b" appSecret:@"dccb4621558611eba8b31fd740d1b30b"];
[GMUMiniApi startWithConfig:config];

注意事项:

  • 建议开发者在App启动时(AppDelegate)调用+[GMUMiniApi startWithConfig]初始化方法,否则可能会影响小程序打开速度。

2. 打开小程序

打开小程序时,会先校验服务端是否有更新,如果有更新则会自动下载并打开。

/// 打开小程序
/// @param miniAppId 小程序ID
+ (void)openMiniApp:(NSString *)miniAppId;

/// 打开带参数的小程序
/// @param miniAppId 小程序ID
/// @param arguments 小程序启动参数:{"scene":"当前的场景","path":"page/index/index?id=123"}
+ (void)openMiniApp:(NSString *)miniAppId withArguments:(nullable NSDictionary *)arguments;

参数说明:

  • miniAppId:小程序唯一标识,可在小程序开放平台获取
  • arguments:目前支持两种传入参数scene:当前的场景,path:想要打开的页面路径, 其中?后面的部分会成为query。scene、path、query都可以在小程序的 App.onLaunch、App.onShow的回调函数中获取,详情

注意事项:

  • +[GMUMiniApi openMiniApp:]方法为打开小程序的方法,开发者可在业务需求处调用该方法以打开指定ID的小程序。

3. 清理所有小程序的内存缓存

当用户关闭小程序时,并不会把小程序完全销毁,而是将小程序缓存到内存中。 用户可以通过该接口清除内存中缓存的小程序。

/// 清理所有小程序的内存缓存,不会删除磁盘中缓存的小程序包
+ (void)clearMemoryCache;

注意事项:

  • 清理所有小程序的内存缓存(再次打开小程序为冷启动)

4. 清理所有小程序的磁盘缓存

/// 清理所有小程序的磁盘缓存
+ (void)clearDiskCache;

注意事项:

  • 清理所有小程序的磁盘缓存(再次打开小程序需要重新下载资源包,并且小程序为冷启动)

5. 获取当前打开的小程序的信息

调用该接口可以获取到当前打开的小程序信息,详见

/// 获取当前打开的小程序的信息
+ (HLMiniPkgInfo *)currentMiniAppInfo;

  • mpKey:小程序标识
  • showName:小程序名称
  • icon:小程序图标
  • introduction:小程序简介
  • version:小程序版本号
  • fileSize:小程序大小
  • serverList:白名单域名列表

6. 关闭当前打开的小程序

/// 关闭当前打开的小程序
+ (void)closeCurrentMiniApp:(BOOL)animated;

7. 关闭当前打开的所有小程序

/// 关闭当前打开的所有小程序
+ (void)closeAllMiniApps;