tencent cloud

文档反馈

扩展 SDK

最后更新时间:2024-03-07 11:18:46
    本文将为您介绍,通过扩展库的方式集成组件,支持的组件可参见下文。

    X5内核扩展 SDK

    如果开发者原来的工程中已集成了腾讯X5内核,小程序 SDK 支持多种版本X5内核,客户需根据自身工程实际情况进行选择。
    注意:
    集成小程序 SDK 后开发者切记不要自己调用X5的初始化,因为小程序 SDK 会进行初始化,如果开发者自己调用初始化可能导致X5初始化失败,进而影响小程序同层渲染能力。
    公网版本 X5 内核
    公网版本 X5 内核为腾讯 X5对外提供使用的内核,它属于共享内核(共享微信、QQ 等内核),且会访问腾讯相关后台服务。
    implementation 'com.tencent.tbs:tbssdk:${version}' //版本信息请参考SDK 更新动态
    implementation 'com.tencent.tcmpp.android:mini_extra_public_x5:${version}' //版本信息请参考SDK 更新动态
    静态内核
    静态 x5 内核将整个内核打包的 aar 中,同时支持 armeabi、arm64-v7a、arm64-v8a 多种架构,但 aar 包体积比较大;并支持小程序同层渲染。
    //在工程中引入依赖
    implementation 'com.tencent.tmf.android:tbscore:${version}' //版本信息请参考SDK 更新动态
    implementation 'com.tencent.tcmpp.android:mini_extra_static_x5_new:${version}' //版本信息请参考SDK 更新动态
    //工程的application中开启extractNativeLibs配置,必须设置为true,否则内核初始化失败
    <application
    android:extractNativeLibs="true">
    </application>
    开发者选择过滤打包后的 apk 支持的架构,来减小 apk 的大小。
    ndk { abiFilters "armeabi" "armeabi-v7a" "arm64-v8a" }
    配置内核 LicenseKey,配置代码详细说明参考 SDK 初始化,LicenseKey 需要找相关人员进行申请。
    @ProxyService(proxy = MiniConfigProxy.class)
    public class MiniConfigProxyImpl extends MiniConfigProxy {
    /**
    * 创建初始化配置信息
    * @return
    */
    @Override
    public MiniInitConfig buildConfig() {
    MiniInitConfig.Builder builder = new MiniInitConfig.Builder();
    MiniInitConfig config = builder
    .x5LicenseKey("")//设置LicenseKey
    .build();
    }
    }
    动态版 X5 内核
    动态内核集成到 app 的 sdk 体积小,内核从服务端下载。
    implementation 'com.tencent.tmf.android:dynamicx5:${version}'
    implementation 'com.tencent.tcmpp.android:mini_extra_dynamic_x5:${version}' //版本信息请参考SDK 更新动态
    使用开发动态内核的开发者依然需要设置 LicenseKey 和内核下载地址,配置代码详细说明参考 SDK 初始化
    @ProxyService(proxy = MiniConfigProxy.class)
    public class MiniConfigProxyImpl extends MiniConfigProxy {
    /**
    * 创建初始化配置信息
    * @return
    */
    @Override
    public MiniInitConfig buildConfig() {
    MiniInitConfig.Builder builder = new MiniInitConfig.Builder();
    MiniInitConfig config = builder
    .x5LicenseKey("")//设置LicenseKey
    .coreUrl32("")//32位内核下载地址 .coreUrl64("")//64位内核下载地址
    .build();
    }
    }
    部署内核文件到服务器,并按照规则生成对应的 URL 地址。
    内核文件 URL 地址的生成规则如下:
    (http 或 https)://domain/path/{versionCode}/{tbscore.tbs}
    {versionCode}:为获取内核时提供的内核版本号 。
    {tbscore.tbs}:为内核文件。
    需要保证 URL 以" / "截取时,内核文件为最后一位,versionCode 为倒数第二位。
    示例如下:
    本例当中,内核版本号为 46471,内核文件为 tbs_core_release.tbs。

    X5 内核事件回调

    @ProxyService(proxy = IX5EventProxy.class) public class X5EventProxyImpl implements IX5EventProxy { /** * 动态内核下载进度 * @param progress */ @Override public void onDownloadProgress(int progress) { Log.d(ModuleApplet.TAG, "X5EventProxyImpl onDownloadProgress=" + progress); } /** * 动态内核下载失败 * @param code * @param msg */ @Override public void onDownloadFailed(int code, String msg) { Log.d(ModuleApplet.TAG, "X5EventProxyImpl onDownloadFailed=" + code + " " + msg); } /** * 动态内核下载完成 */ @Override public void onDownloadFinish() { Log.d(ModuleApplet.TAG, "X5EventProxyImpl onDownloadFinish"); } /** * 内核初始化回调 * @param isX5 true:x5初始化成功;false:x5初始化失败 */ @Override public void init(boolean isX5) { Log.d(ModuleApplet.TAG, "X5EventProxyImpl isX5=" + isX5); } }

    扫码扩展 SDK

    组件说明:开发者小程序如果使用了小程序扫码能力,则需要添加如下 SDK 支持扫码功能;如未使用,建议暂不添加,这样可以减小 App 包大小。
    集成方法:按照如下的方式添加扫码扩展库依赖:
    //扫码扩展组件
    implementation 'com.tencent.tcmpp.android:mini_extra_qrcode:${version}' // 版本信息请参考SDK 更新动态
    添加扫码扩展 SDK 后,增加支持的小程序 API 列表如下:
    API 名称
    说明
    wx.scanCode
    调起客户端扫码界面进行扫码
    涉及权限:
    权限
    描述
    相机权限
    需要申请相机权限用于扫码
    文件读写权限
    需要申请文件读写权限用于识别本地图片中的二维码

    腾讯定位地图扩展 SDK

    组件说明:针对中国大陆地区 App 开发,开发者小程序如果使用了小程序地图能力,则需要添加如下 SDK 支持腾讯地图功能;如未使用,建议暂不添加,这样可以减小 App 包大小。
    集成方法:按照如下的方式添加地图扩展库依赖:
    implementation 'com.tencent.tcmpp.android:mini_extra_map:${version}'// 版本信息请参考SDK 更新动态
    implementation 'com.tencent.map:tencent-map-vector-sdk:4.5.10' //版本信息参考腾讯地图文档
    implementation 'com.tencent.map:sdk-utilities:1.0.7'
    implementation 'com.tencent.map.geolocation:TencentLocationSdk-openplatform:7.4.7'
    您需要在您的腾讯位置服务控制台配置项目,并获取访问腾讯地图服务所需要的 API 密钥,详细操作,请参考 开发指南
    完成上述操作后,您需要在 Android 工程中配置您的 API 密钥。在 AndroidManifest.xml 文件中添加以下 meta-data,并将您的 API 密钥填入 (YOUR_API_KEY) 位置:
    <application
    ...
    <meta-data
    android:name="TencentMapSDK"
    android:value="(YOUR_API_KEY)" />
    ...
    </application>
    添加腾讯地图扩展 SDK 后,增加支持的小程序 API 列表如下:
    API 名称
    说明
    地图
    支持地图相关接口,包括地图展示,使用地图选择位置以及查询 POI 等
    涉及权限:
    权限
    描述
    定位权限
    需要使用定位权限用于显示地图定位

    Google 及华为定位地图扩展 SDK

    组件说明:针对海外 App 开发,开发者小程序如果使用了小程序地图能力,需要添加如下 SDK 支持 Google Map 功能;如未使用,建议暂不添加,这样可以减小 App 包大小。
    集成方法:按照如下的方式添加地图扩展库依赖:
    implementation 'com.tencent.tcmpp.android:mini_extra_google_map:${version}'//版本信息请参考SDK 更新动态
    implementation 'com.google.android.gms:play-services-maps:18.1.0' //版本信息参考谷歌地图文档
    implementation 'com.google.maps.android:android-maps-utils:2.3.0'
    由于部分华为设备不支持内嵌 Google Map,可能导致地图无法显示。您可以额外接入 Petal Map 作为补充方案,小程序框架将在华为设备上优先使用 Petal Map。
    repositories {
    maven {url 'https://developer.huawei.com/repo/'}
    }
    implementation 'com.tencent.tcmpp.android:mini_extra_huawei_map:${version}'//版本信息请参考SDK 更新动态
    implementation 'com.huawei.hms:maps:6.9.0.300' //版本信息参考华为地图文档
    implementation 'com.huawei.hms:maps-basic:6.9.0.300'
    implementation 'com.huawei.hms:site:6.5.1.300'
    使用 Google Map 的情形,您需要在您的 Google Cloud Console 配置 Google Cloud 项目,并获取访问 Google 地图服务所需要的 API 密钥,具体操作步骤请参考在 Google Cloud Console 中进行设置以及使用 API 密钥
    完成上述操作后,您需要在 Android 工程中配置您的 API 密钥。在 AndroidManifest.xml 文件中添加以下 meta-data,并将您的 API 密钥填入 (YOUR_API_KEY) 位置:
    <application
    ...
    <meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="(YOUR_API_KEY)" />
    ...
    </application>
    使用 Petal Map 的情形,您需要在您的华为管理控制台建立项目、开通地图以及位置服务并获取位置服务所使用的 API 秘钥,具体操作步骤,请参考 配置 AppGallery Connect。然后按照 集成 HMS Core SDK 的引导下载“agconnect-services.json”文件至您的项目中并配置华为 AGC 插件。
    您需要在 AndroidManifest.xml 文件中添加以下 meta-data,并将您的 API 密钥填入 (YOUR_API_KEY) 位置以正常使用华为的位置服务:
    <application
    ...
    <meta-data
    android:name="HuaweiApiKey"
    android:value="(YOUR_API_KEY)" />
    ...
    </application>
    注意:
    出于安全考虑,建议您为位置服务单独申请 API 密钥。
    添加 Google、华为地图扩展 SDK 后,增加支持的小程序 API 列表如下:
    API 名称
    说明
    地图
    支持地图相关接口以及组件,包括地图展示,使用地图选择位置以及查询 POI 等
    涉及权限:
    权限
    描述
    定位权限
    需要使用定位权限用于显示地图定位

    直播组件扩展SDK

    组件说明:如果您需要使用直播组件(live-player 和 live-pusher)进行直播推、拉流相关场景的开发,需要添加如下 SDK 以支持直播组件相关的功能的实现。
    集成方法:添加直播组件依赖:
    //直播组件支持库
    implementation 'com.tencent.tcmpp.android:mini_extra_trtc_live:${version}'//版本信息请参考SDK 更新动态
    //直播组件库
    implementation 'com.tencent.liteav:LiteAVSDK_Professional:latest.release' //版本信息参考腾讯云文档
    除了完成以上依赖的添加,您还需要重写实现 BaseMiniAppProxyImpl 的如下方法,提供直播组件需要的 LicenseUrl 和 LicenseKey,以完成直播组件的初始化信息配置;如果您未配置正确的 LicenseUrl 和 LicenseKey,会导致直播组件功能不可用。
    说明:
    LicenseUrl 和 LicenseKey 的获取方式可参考 新增与续期 License
    @ProxyService(proxy = MiniAppProxy.class)
    public class MiniAppProxyImpl extends BaseMiniAppProxyImpl {
    @Override
    public MiniConfigData configData(Context context, int configType, JSONObject params) {
    if(configType == MiniConfigData.TYPE_LIVE) {
    //Live直播配置
    MiniConfigData.LiveConfig liveConfig = new MiniConfigData.LiveConfig();
    //下面的key和url仅可用于demo
    liveConfig.licenseKey = "";
    liveConfig.licenseUrl = "";
    
    return new MiniConfigData
    .Builder()
    .liveConfig(liveConfig)
    .build();
    }
    
    return null;
    }
    }
    添加直播扩展 SDK 后,增加支持的小程序 API 列表如下:
    API 名称
    说明
    wx.createLivePusherContext
    创建直播推流端 context
    LivePusherContext
    支持 LivePusherContext 相关接口
    wx.createLivePlayerContext
    创建直播拉流端 context
    LivePlayerContext
    支持 LivePlayerContext 相关接口
    组件
    -
    live-pusher
    推流标签
    live-player
    播放标签
    涉及权限如下:
    权限名称
    描述
    相机权限
    -
    录音权限
    -

    LBS 扩展 SDK

    组件说明:LBS 组件提供位置信息、罗盘、加速计、定位、设备方向的相关的能力。
    集成方法:按照如下的方式添加 LBS 扩展库依赖:
    implementation 'com.tencent.tcmpp.android:mini_extra_lbs:${version}'//版本信息请参考SDK 更新动态
    添加 LBS 扩展 SDK 后,增加支持的小程序 API 列表如下:
    API 名称
    说明
    位置信息
    支持位置信息相关接口
    罗盘
    支持罗盘相关接口
    加速计
    支持加速计相关接口
    设备方向
    支持设备方向相关接口
    陀螺仪
    支持陀螺仪相关接口
    LBS 扩展 SDK 涉及权限如下:
    权限
    说明
    定位
    获取定位依赖定位权限

    蓝牙扩展 SDK

    组件说明:添加蓝牙扩展库之后,即可使用蓝牙相关的 API。
    集成方法:按照如下的方式添加蓝牙扩展库依赖:
    implementation 'com.tencent.tcmpp.android:mini_extra_bluetooth:${version}'//版本信息请参考SDK 更新动态
    添加 LBS 扩展 SDK 后,增加支持的小程序 API 列表如下:
    API
    说明
    蓝牙-通用
    蓝牙通用接口
    蓝牙-低功耗外围设备
    外围设备相关接口
    蓝牙-低功耗中心设备
    中心设备相关接口
    蓝牙-信标
    蓝牙信标相关接口
    蓝牙扩展 SDK 涉及权限如下:
    权限
    说明
    蓝牙
    操作蓝牙需要申请蓝牙权限
    定位
    蓝牙设备搜索依赖定位权限

    NFC 扩展 SDK

    组件说明:添加 NFC 扩展 SDK,能够实现 NFC 读写相关的能力。
    集成方法:按照如下的方式添加 NFC 扩展 SDK 依赖:
    implementation 'com.tencent.tcmpp.android:mini_extra_nfc:${version}'//版本信息请参考SDK 更新动态
    添加 NFC 扩展 SDK 后,增加支持的小程序 API 列表如下:
    API 名称
    说明
    wx.getNFCAdapter
    获取 NFC 操作管理实例对象
    NFCAdapter
    支持 NFCAdapter 相关接口
    NFC 实例(NfcA、NfcB、NfcV、NfcF、Ndef、IsoDep、MifareUltralight、MifareClassic)
    支持 NFC 标签实例相关接口
    所涉及权限:
    权限名称
    描述
    NFC 权限
    需要获取 NFC 权限

    日历扩展 SDK

    组件说明:日历扩展 SDK 提供日程创建相关的功能
    集成方法:按照如下的方式添加日历扩展扩展库依赖:
    implementation 'com.tencent.tcmpp.android:mini_extra_calendar:${version}'//版本信息请参考SDK 更新动态
    添加日历扩展 SDK 后,增加支持的小程序 API 列表如下:
    API名称
    说明
    wx.addPhoneCalendar
    添加日程
    wx.addPhoneRepeatCalendar
    添加重复日程
    涉及权限:
    权限
    描述
    日历权限
    需要授予日历读写权限

    生物认证扩展 SDK

    组件说明:生物认证扩展 SDK 提供设备指纹、人脸识别相关的能力。
    集成方法:按照如下的方式添加生物认证扩展库依赖:
    implementation 'com.tencent.tcmpp.android:mini_extra_soter:${version}'//版本信息请参考SDK 更新动态
    添加生物认证扩展 SDK 后,增加支持的小程序 API 列表如下:
    API名称
    说明
    wx.startSoterAuthentication
    -
    wx.checkIsSupportSoterAuthentication
    -
    wx.checkIsSoterEnrolledInDevice
    -
    涉及权限:
    权限
    描述
    指纹访问
    需要申请指纹访问权限

    剪切板扩展 SDK

    组件说明:提供剪切板访问的能力
    集成方法:按照如下的方式添加扩展库依赖:
    implementation 'com.tencent.tcmpp.android:mini_extra_clipboard:${version}'//版本信息请参考SDK 更新动态
    添加 LBS 扩展 SDK 后,增加支持的小程序 API 列表如下:
    API名称
    说明
    wx.getClipboardData
    -
    wx.setClipboardData
    -
    涉及权限:
    权限
    描述
    剪贴板权限
    需要申请剪切板访问权限

    通讯录扩展 SDK

    组件说明:提供联系人访问相关能力。
    集成方法:按照如下的方式添加扩展库依赖:
    implementation 'com.tencent.tcmpp.android:mini_extra_contact:${version}'//版本信息请参考SDK 更新动态
    添加通讯录扩展 SDK 后,增加支持的小程序 API 列表如下:
    API 名称
    说明
    wx.addPhoneContact
    添加联系人
    wx.chooseContact
    选择联系人
    涉及权限:
    权限
    描述
    联系人读写权限
    需要申请联系人访问、写入权限

    文档引擎扩展 SDK

    组件说明:提供文档(pdf、word、excel、ppt等)打开能力。
    集成方法:按照如下的方式添加扩展库依赖:
    implementation 'com.tencent.tmf.android:tbs-doc-support:${version}'//版本信息请参考SDK 更新动态
    implementation 'com.tencent.tcmpp.android:mini_extra_doc:${version}'//版本信息请参考SDK 更新动态
    配置文档引擎LicenseKey,配置代码详细说明参考SDK 初始化,LicenseKey需要找相关人员进行申请;
    @ProxyService(proxy = MiniConfigProxy.class)
    public class MiniConfigProxyImpl extends MiniConfigProxy {
    /**
    * 创建初始化配置信息
    * @return
    */
    @Override
    public MiniInitConfig buildConfig() {
    MiniInitConfig.Builder builder = new MiniInitConfig.Builder();
    MiniInitConfig config = builder
    .docLicenseKey("")//设置LicenseKey
    .build();
    }
    }

    媒体扩展 SDK

    组件说明:提供 chooseMedia、previewMedia 的默认实现。
    集成方法:按照如下的方式添加扩展库依赖:
    
    implementation 'com.tencent.tcmpp.android:mini_extra_media_support:${version}'//版本信息请参考SDK 更新动态
    实现 MediaImageLoaderProxy 代理,使用自定义的图片加载实现,用于 mini_extra_media_support 库的图片加载。
    说明:
    可以通过实现 MediaChooseJsProxy 代理,实现自定义的 chooseMedia 逻辑。
    @ProxyService(proxy = MediaImageLoaderProxy.class) public class CustomMediaImageLoaderProxy implements MediaImageLoaderProxy { private GlideImageEngine glideImageEngine = new GlideImageEngine(); @Override public ImageEngine getCustomImageEngine() { return glideImageEngine; } static class GlideImageEngine implements ImageEngine { @Override public void loadPhoto(@NonNull Context context, @NonNull Uri uri, @NonNull ImageView imageView) { Glide.with(context).load(uri).transition(withCrossFade()).into(imageView); } @Override public void loadGifAsBitmap(@NonNull Context context, @NonNull Uri gifUri, @NonNull ImageView imageView) { Glide.with(context).asBitmap().load(gifUri).into(imageView); } @Override public void loadGif(@NonNull Context context, @NonNull Uri gifUri, @NonNull ImageView imageView) { Glide.with(context).asGif().load(gifUri).transition(withCrossFade()).into(imageView); } @Override public Bitmap getCacheBitmap(@NonNull Context context, @NonNull Uri uri, int width, int height) throws Exception { return Glide.with(context).asBitmap().load(uri).submit(width, height).get(); } } }
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持