FinClip为企业提供小程序生态圈技术产品,开发者可在FinClip小程序开发帮助中心找到相关FinClip小程序指引

# 小程序信息管理

这个模块主要是获取小程序信息的一些Api介绍。

# 1. 搜索小程序

要搜索小程序,需要两步:

  1. 确保在初始化SDK的时候,配置了该服务器信息;
  2. 调用该搜索接口搜索小程序

# API

/**
 * 搜索小程序
 *
 * @param searchAppletRequest 请求体
 * @param callback 请求结果回调
 */
fun searchApplet(
    searchAppletRequest: SearchAppletRequest,
    callback: FinCallback<SearchAppletResponse>
)

SearchAppletRequest说明:

/**
 * 搜索小程序请求实体类
 *
 * @param apiServer 服务器地址
 * @param text 搜索内容
 */
data class SearchAppletRequest(var apiServer: String,
                               var text: String)

SearchAppletResponse说明:

/**
 * 搜索小程序返回实体类
 *
 * @param list 搜索到的小程序集合
 * @param total 搜索到的小程序数量
 */
data class SearchAppletResponse(
        val list: List<AppletInfo>?,
        val total: Int
)

/**
 * 搜索小程序返回的小程序信息实体类
 *
 * @param appId 小程序id
 * @param appName 小程序名称
 * @param desc 小程序描述信息
 * @param highLights 高亮字体
 * @param logo 小程序logo
 * @param organName 企业名称
 * @param pageUrl 小程序搜索到的页面路径
 * @param showText 展示内容
 */
data class AppletInfo(
        val appId: String?,
        val appName: String?,
        val desc: String?,
        val highLights: List<HighLight>?,
        val logo: String?,
        val organName: String?,
        val pageUrl: String?,
        val showText: String?
)

/**
 * 高亮字体
 *
 * @param key 高亮字体的key
 * @param value 高亮字体的value
 */
data class HighLight(
        val key: String?,
        val value: String?
)

# 调用示例

FinAppClient.appletApiManager.searchApplet(
    SearchAppletRequest("服务地地址", "搜索内容"),
    object : FinCallback<SearchAppletResponse> {
        override fun onSuccess(result: SearchAppletResponse?) {
            // 搜索成功
        }

        override fun onError(code: Int, error: String?) {
            // 搜索失败
        }

        override fun onProgress(status: Int, info: String?) {
        }
    })
FinAppClient.INSTANCE.getAppletApiManager().searchApplet(
        new SearchAppletRequest("服务器地址", "搜索内容"),
        new FinCallback<SearchAppletResponse>() {
            @Override
            public void onSuccess(SearchAppletResponse result) {
                // 搜索成功
            }

            @Override
            public void onError(int code, String error) {
                // 搜索失败
            }

            @Override
            public void onProgress(int status, String info) {

            }
        });

# 2. 获取小程序对象信息

# API

/**
 * 获取小程序信息
 */
fun getAppletInfo(appId: String): FinAppInfo?

# 调用示例

val appInfo = FinAppClient.appletApiManager.getAppletInfo("appId")
FinAppInfo appInfo = FinAppClient.INSTANCE.getAppletApiManager().getAppletInfo("appId"); 

# 相关字段说明

字段名 说明
appId 小程序id
codeId 小程序代码包ID
userId 小程序开发者id
appAvatar 小程序头像
appTitle 小程序标题
appDescription 小程序描述
appPath 小程序路径
appVersion 小程序版本号
appVersionDescription 小程序版本说明
sequence 小程序序列
isGrayVersion 是否是灰度版本
appThumbnail 小程序缩略图
groupId 所属组织ID
groupName 所属组织名称
appType 小程序类型
createdBy 小程序开发者
createdTime 小程序创建时间
startParams 启动参数
info 扩展信息
fromAppId 小程序的来源小程序id
如果小程序A通过调用navigateToMiniProgram打开小程序B,那么对于小程序B来说,fromAppId为小程序A的appId
finStoreConfig 小程序应用市场配置信息
frameworkVersion 基础库版本号
url 小程序下载地址
md5 小程序整包MD5
cryptInfo 小程序加密信息

# 3. 获取小程序当前WebView信息

# 3.1 获取当前webView的URL

如果当前页面加载的是H5,才会返回H5对应的URL。

FinAppClient.appletApiManager.getCurrentWebViewURL(
    object : FinCallback<String> {
        override fun onSuccess(result: String?) {
            toast("url:$result")
        }

        override fun onError(code: Int, error: String?) {

        }

        override fun onProgress(status: Int, info: String?) {

        }
    })

# 3.2 获取当前webView的UserAgent

FinAppClient.appletApiManager.getCurrentWebViewUserAgent(
    object : FinCallback<String> {
        override fun onSuccess(result: String?) {
            toast("userAgent:$result")
        }

        override fun onError(code: Int, error: String?) {

        }

        override fun onProgress(status: Int, info: String?) {

        }
    })

# 4. 获取小程序页面截图

# API

/**
 * 获取小程序页面截图
 *
 * @param appId 小程序id
 * @param callback 小程序页面截图回调
 */
fun captureAppletPicture(appId: String, callback: FinCallback<Bitmap?>)

# 调用示例

FinAppClient.appletApiManager.captureAppletPicture(
    "appId",
    object : FinCallback<Bitmap?> {
        override fun onSuccess(result: Bitmap?) {
            Log.d(TAG, "获取小程序页面截图成功 :$result")
        }

        override fun onError(code: Int, error: String?) {
            Log.e(TAG, "获取小程序页面截图失败 :$code, $error")
        }

        override fun onProgress(status: Int, info: String?) {
        }
    })
FinAppClient.INSTANCE.getAppletApiManager().captureAppletPicture(
        "appId",
        new FinCallback<Bitmap>() {
            @Override
            public void onSuccess(Bitmap result) {
                Log.d(TAG, "获取小程序页面截图成功 :" + bitmap);
            }

            @Override
            public void onError(int code, String error) {
                Log.e(TAG, "获取小程序页面截图失败 :" + code + ", " + error);
            }

            @Override
            public void onProgress(int status, String info) {

            }
        });

# 5. 获取使用过的小程序

# 5.1 获取使用过的指定小程序

# API
/**
 * 获取指定小程序id的使用过的小程序
 *
 * @param appId 小程序id
 */
fun getUsedApplet(appId: String): FinApplet?
# 调用示例
val finApplet = FinAppClient.appletApiManager.getUsedApplet("appId") 
FinApplet finApplet = FinAppClient.INSTANCE.getAppletApiManager().getUsedApplet("appId"); 

# 5.2 获取使用过的小程序列表

# API
/**
 * 获取所有使用过的小程序
 */
fun getUsedApplets(): List<FinApplet>
# 调用示例
val usedApplets = FinAppClient.appletApiManager.getUsedApplets() 
List<FinApplet> usedApplets = FinAppClient.INSTANCE.getAppletApiManager().getUsedApplets(); 

# 5.3 判断是否是使用过的小程序

# API

/**
 * 判断是否是使用过的小程序
 */
fun isUsedApplet(appId: String): Boolean

# 调用示例

val isUsedApplet = FinAppClient.appletApiManager.isUsedApplet("appId") 
boolean isUsedApplet = FinAppClient.INSTANCE.getAppletApiManager().isUsedApplet("appId"); 

# 6. 获取当前小程序的id

# API

/**
 * 获取当前小程序的id
 */
fun getCurrentAppletId(): String?

# 调用示例

val currentAppletId = FinAppClient.appletApiManager.getCurrentAppletId() 
String currentAppletId = FinAppClient.INSTANCE.getAppletApiManager().getCurrentAppletId(); 

# 7. 微信小程序二维码信息转换为 FinClip小程序

该API的使用场景是当某小程序在微信和FinClip服务上都上架之后,可以在FinClip平台关联微信的小程序。这时FinClip平台上的线上版二维码,既可以用微信扫码打开,也可以用凡泰助手或其他集成了FinClip 小程序 SDK的APP扫码打开。

流程是先扫描该二维码,得到二维码内容,然后调用该接口获取FinClip 小程序id,最后调用打开小程序的API即可。

# API

/**
 * 根据微信QrCode信息解析小程序信息
 *
 * @param qrCode 二维码信息
 * @param apiServer 小程序所在应用市场的服务器地址
 * @param callback 结果回调
 */
fun parseAppletInfoFromWXQrCode(
    qrCode: String,
    apiServer: String,
    callback: FinSimpleCallback<ParsedAppletInfo?>
)

ParsedAppletInfo结构如下:

/**
 * 根据微信QrCode信息解析小程序信息返回的小程序信息实体类
 *
 * @param appId 小程序id
 */
data class ParsedAppletInfo(
    val appId: String?
)

# 调用示例

FinAppClient.appletApiManager.parseAppletInfoFromWXQrCode(
    qrCode,
    apiServer,
    object : FinSimpleCallback<ParsedAppletInfo?>() {
        override fun onSuccess(result: ParsedAppletInfo?) {
            Log.d(TAG, "parse onSuccess result : ${result.toString()}")
        }

        override fun onError(code: Int, error: String?) {
            Log.d(TAG, "parse onError code : $code, error : $error")
        }
    })
FinAppClient.INSTANCE.getAppletApiManager().parseAppletInfoFromWXQrCode(
        qrCode,
        apiServer,
        new FinSimpleCallback<ParsedAppletInfo>() {
            @Override
            public void onSuccess(ParsedAppletInfo result) {
                Log.d(TAG, "parse onSuccess result : " + result.toString());
            }

            @Override
            public void onError(int code, @org.jetbrains.annotations.Nullable String error) {
                Log.d(TAG, "parse onError code : " + code + ", error : " + error);
            }
        }
);
© 2022 FinClip with ❤

👋🏻 嘿,你好!

「FinClip」是一套基于云原生框架设计的小程序容器。能够让任何移动应用在集成小程序SDK之后,获得可用、安全的小程序运行能力。

>> 点我免费注册体验

查看产品文档
了解与 FinClip 相关的一切信息

产品博客 👈  了解产品更新与核心功能介绍
资源下载 👈  获取小程序 SDK 与开发工具
文档中心 👈  查询 FinClip 小程序开发指南与答疑

商务咨询热线
预约 FinClip 产品介绍,咨询商务报价或私有化部署事宜

0755-86967467

获取产品帮助
联系 FinClip 技术顾问,获取产品资料或加入开发者社群

联系线上
人工客服

或 👉  点击这里,提交咨询工单