当用户提到以下任一主题时,使用本 skill:
如果用户问题明确与 Android 的 MobLink 接入、工程配置、场景还原、隐私合规有关,应优先使用本 skill。
使用以下官方文档作为事实来源:
关键事实:
minSdkVersion 19。https://mvn.mob.com/android。classpath "com.mob.sdk:MobSDK2:+"。com.mob.sdk 插件。MobSDK { appKey "..."; appSecret "..."; MobLink { uriScheme "..."; appLinkHost "..." } } 是核心配置。MobSDK.spEdition=GPP。MobSDK.spEdition=IZNAO;合规指南中说明隐私协议适配版本为 MobSDK.spEdition=FP。生成时必须向用户确认上架渠道与版本选择。MobSDK.submitPolicyGrantResult(true),或使用 MobSDK.submitPolicyGrantResult(MobCustomController cont, true)。每步操作前都需要展示内容给用户确认,获得明确同意后再执行。
我来帮你集成 MobLink 场景还原功能。
请提供需要集成的 Android 项目根路径,例如:
/path/to/your-android-project
请确保项目包含 settings.gradle 或 app/build.gradle 文件。
验证逻辑:
settings.gradle 或 settings.gradle.kts。app/build.gradle 或 app/build.gradle.kts。如果路径不合法:
路径验证失败,可能原因:
- 路径不存在:{path}
- 未找到 settings.gradle / settings.gradle.kts
- 未找到 app/build.gradle / app/build.gradle.kts
请重新提供正确的 Android 项目根路径。
如果路径合法:进入步骤 2。
操作:
assets/generate_excel_template.py,生成 assets/MobLink_Config_Template.xlsxassets/MobLink_Config_Template.xlsx 复制到 {path} 下{path} 下命名为 MobLink_Config.xlsx告知用户:
已在你项目的根目录生成 {path}/MobLink_Config.xlsx 配置文件。
请打开该文件,按以下步骤填写:
1. 在"基础信息"Sheet 中填写 MobTech 的 appKey、appSecret、包名和签名 MD5
2. 在"MobLink配置"Sheet 中填写 uriScheme、appLinkHost 和默认场景路径
3. 在"隐私合规"Sheet 中确认隐私政策、授权回调和扩展采集控制配置
4. "填写说明"Sheet 中有官方文档链接和字段说明
填写完成后告诉我"填好了",我将继续下一步。
等待用户回复“填好了”“已填写”或类似表达。
操作:读取 {path}/MobLink_Config.xlsx。
验证规则:
| 检查项 | 规则 | 不通过时的提示 |
|---|---|---|
| -------- | ------ | --------------- |
| appKey | 必填,不能为空字符串 | "基础信息 Sheet 中的 appKey 未填写,请从 MobTech 官网获取" |
| appSecret | 必填,不能为空字符串 | "基础信息 Sheet 中的 appSecret 未填写" |
| packageName | 必填,建议符合 com.xxx.xxx 格式 | "包名格式不正确,应类似 com.example.app" |
| uriScheme | 建议填写,来自 MobLink 后台配置 | "MobLink uriScheme 未填写,可能影响 scheme 唤醒" |
| appLinkHost | 建议填写,来自 MobLink 后台开启 AppLink 时生成的 Host | "MobLink appLinkHost 未填写,可能影响 AppLink 唤醒" |
| defaultScenePath | 如填写,建议以 / 开头 | "场景路径建议以 / 开头,例如 /demo/a" |
| useGooglePlayEdition | 转为布尔值 | "是否上架 Google Play 请填写 是/否 或 true/false" |
| 隐私合规布尔项 | 转为布尔值 | "隐私合规配置请填写 是/否 或 true/false" |
类型转换规则:
appKey、appSecret、packageName、signatureMD5、uriScheme、appLinkHost、defaultScenePath、restoreActivity 等标识符字段强制转为字符串。useGooglePlayEdition、privacyPolicyReady、useMobCustomController、allowLocationData、allowDeviceIdData、allowAppListData、allowNetworkData 转为 true / false。如果不合法:
配置信息验证失败,请修正以下问题:
{具体问题列表}
请修改 Excel 文件后保存,然后重新告诉我"填好了"。
如果合法:提取配置信息,进入步骤 3。
根据项目 AGP 版本和 Gradle 文件类型选择 Groovy 或 Kotlin DSL。修改前必须展示将要添加的内容并询问确认。
AGP 7.0+ 的 settings.gradle 示例:
pluginManagement {
repositories {
gradlePluginPortal()
google()
mavenCentral()
maven { url "https://mvn.mob.com/android" }
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
repositories {
gradlePluginPortal()
google()
mavenCentral()
maven { url "https://mvn.mob.com/android" }
}
}
项目级 build.gradle:
buildscript {
dependencies {
classpath "com.mob.sdk:MobSDK2:+"
}
}
AGP 7.0 以下项目还需要在项目级 build.gradle 的 allprojects.repositories 和 buildscript.repositories 中加入:
maven { url "https://mvn.mob.com/android" }
根据 Excel 的 useGooglePlayEdition 和用户确认决定:
MobSDK.spEdition=GPPMobSDK.spEdition=FPGroovy DSL 示例:
apply plugin: 'com.mob.sdk'
MobSDK {
appKey "{appKey}"
appSecret "{appSecret}"
MobLink {
uriScheme "{uriScheme}"
appLinkHost "{appLinkHost}"
}
}
如果项目使用 plugins {}:
plugins {
id 'com.android.application'
id 'com.mob.sdk'
}
Kotlin DSL 项目需要按现有风格生成等价配置。若无法确认 MobSDK 插件在 Kotlin DSL 下的准确语法,先向用户展示建议并要求确认。
如果项目启用了混淆,在混淆文件中加入:
-keep class com.mob.**{*;}
-dontwarn com.mob.**
根据 MobTech 合规要求,MobLink 需要在用户同意隐私政策后才能提交授权结果并使用 SDK 功能。
请告知用户点击隐私政策"同意"按钮的回调代码在哪个文件、哪个方法中?
例如:MainActivity.java 的 onPrivacyAgreed() 方法,或具体位置如 app/src/main/java/.../MainActivity.java:80
普通方案:
com.mob.MobSDK.submitPolicyGrantResult(true);
如果用户启用 MobCustomController,展示:
com.mob.MobSDK.submitPolicyGrantResult(new MyMobLinkCustomController(), true);
如需在启动时更新控制器,可展示:
com.mob.MobSDK.updateMobCustomController(new MyMobLinkCustomController());
注意:官方扩展业务文档说明,使用 submitPolicyGrantResult(controller, true) 设置控制器时,必须每次启动 APP 时均调用;如果并非每次启动都会调用隐私提交接口,可以通过 MobSDK.updateMobCustomController() 设置。
用户确认后再执行插入。
询问用户:
现在配置 MobLink 场景还原,请告诉我:
1. 需要在哪个 Activity 承接还原后的场景?
2. 场景路径是什么?例如 /demo/a
3. 需要携带哪些业务参数?例如 articleId、userId、source
4. 是否需要生成 mobID 并拼接到分享链接?
5. 是否已有 Application 类?如果有,请提供路径。
官方建议放到 Application 的 onCreate 中。若 Application 未继承 MobApplication,在设置监听前需要确认是否调用:
MobSDK.init(this, "{appKey}", "{appSecret}");
监听器示例:
MobLink.setRestoreSceneListener(new RestoreSceneListener() {
@Override
public Class<? extends Activity> willRestoreScene(Scene scene) {
return MainActivity.class;
}
@Override
public void notFoundScene(Scene scene) {
// 未找到处理 scene 的 Activity
}
@Override
public void completeRestore(Scene scene) {
// 场景还原完成
}
});
让需要场景还原的 Activity 实现 SceneRestorable,并添加:
@Override
public void onReturnSceneData(Scene scene) {
// 处理场景还原数据
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
MobLink.updateNewIntent(getIntent(), this);
}
HashMap<String, Object> sceneParams = new HashMap<>();
sceneParams.put("key1", "value1");
Scene scene = new Scene();
scene.path = "{defaultScenePath}";
scene.params = sceneParams;
MobLink.getMobID(scene, new ActionListener() {
@Override
public void onResult(String mobID) {
// 根据 mobID 拼接分享链接,例如:url + "&mobid=" + mobID
}
@Override
public void onError(Throwable throwable) {
// 处理错误
}
});
所有代码修改前先展示完整 diff 计划,用户确认后再写入。
操作:在 {path} 下生成 MOBLINK_README.md。
内容应包含:
uriScheme 和 appLinkHost 来源。SceneRestorable 实现位置。getMobID 使用方式。生成前展示内容,用户确认后写入。
共 1 个版本