小米商店小米上架“我的收藏”接入说明
1.“我的收藏” 简介
“我的收藏”是信息助手(负一屏)上一张默认开启的卡片。
能同步将各应用中的收藏内容添加到“我的收藏”,并通过“我的收藏” 卡片和全局搜索来查找使用。
2.为什么要做“我的收藏”
日常使用的大多数应用都有收藏功能,而手机上的收藏功能目前存在如下3个问题:
- 查找难:收藏的内容忘记在哪个应用,且应用的收藏入口不同,查找费力;
- 忘记查看:收藏的内容本来准备先码后看,因入口过深而遗忘;
- 收藏方式不统一:市面上现有的全局收藏方式较为复杂,且不统一,有一定学习成本;
3.如何使用“我的收藏”
3.1如何添加收藏
当用户在应用中有收藏行为时,应用主动发送广播,将当前收藏内容发送到“我的收藏”,“我的收藏”收藏成功后,会弹出通知提醒。 (与原应用的收藏方式相同,无需用户学习新的收藏方式)
3.2如何查看收藏内容
目前有2种方式查找使用收藏内容:我的收藏卡片和全局搜索。
3.2.1信息助手(负一屏)我的收藏卡片
作为负一屏默认开启的常驻卡片,展现最新收藏的3篇文章。
3.2.2 全局搜索
通过全局搜索对标题、来源进行搜索查找收藏的内容。
3.3收藏的打开方式
通过合作接口添加到“我的收藏”中的所有内容,打开方式均通过原应用打开。
4. 合作方接入的好处是
· 提升产品DAU和带来一定量的新增
通过接口收藏的内容,都会通过原应用打开。若应用被卸载,会提示用户安装后使用。
· 提升品牌曝光和内容展现
收藏的内容会展现在负一屏收藏卡片,同时通过全局搜索可以查找到收藏内容。
5. 接入技术文档
接入方式,因收藏动作无需回调结果,所以可以使用原生最简单的广播接口来实现。
private interface IntentConfig {
public static final String String ACTION = "com.miui.personalassistant.action.FAVORITE";
public static final String String PACKAGE = "com.miui.personalassistant"; //发送广播指定的包名
public static final String String PERMISSION = "com.miui.personalassistant.permission.FAVORITE"; //发送广播指定的权限
public static final String String BUNDLES = "bundles";
public static final String String ACTION_FAV = "action_fav";
}
private interface BundleConfig {
public static final String MATCH_COMPONENT = "matchComponent";
public static final String MATCH_ACTION = "matchAction";
public static final String TARGET_URL = "targetUrl";
public static final String TARGET_DATA = "targetData";
public static final String TARGET_TITLE = "targetTitle";
public static final String TARGET_IMAGE = "targetImage";
public static final String TARGET_EXTRA = "targetExtra";
}
/**
* 批量创建bundle方式
*
*/
/* 添加收藏动作如下 */
// 指定跳转应用,方案有1、2两种,选其一
// 1、设置当前收藏的 ComponentName(以便收藏后显示来源和原App跳转), 形式如(packageName/className全称):com.android.browser/com.android.browser.BrowserActivity
// 2、设置intent action,另需要ComponentName设置为packageName,intent.setAction(action) intent.setPackage(packageName)跳转使用
Bundle bundle = new Bundle();
bundle.putString(BundleConfig.MATCH_COMPONENT, componentName); //收藏跳转对应APP使用:setComponent(component);若设置通过intent action跳转应用,则component设置为packageName
bundle.putString(BundleConfig.MATCH_ACTION, actionName); //收藏跳转对应APP使用:Intent.setA网页生成Appction(action)
bundle.putString(BundleConfig.TARGET_URL, targetUrl); // 参数类型http/https,指详情页的具体链接地址,用于对应应用卸载后,网页显示详情,webview.loadUrl(targetUrl)
bundle.putString(BundleConfig.TARGET_DATA, targetData); //对应详情页面的intent data,从收藏跳转到对应APP的详情页使用:Intent.setData(Uri targetData)
bundle.putString(BundleConfig.TARGET_TITLE, targetTitle); // 必选,收藏条目显示标题
bundle.putString(BundleConfig.TARGET_IMAGE, targetImage); //可选,收藏图片url,推荐大小180x180px(宽高比为1:1)
bundle.putString(BundleConfig.TARGET_EXTRA, targetExtra); // 可选,用于有额外需求的参数传递
/* 取消收藏动作如下 */
// 只需要取消对应的链接
Bundle bundle = new Bundle();
bundle.putString(BundleConfig.TARGET_URL, targetUrl);
// 向集合中添加所有要收藏数据的bundle
ArrayList<Bundle> bundleList = new ArrayList<Bundle>();
for (int i = 0; i < length ; i++) {
bundleList.add(bundle);
}
// 发送收藏广播
Intent intent = new Intent(IntentConfig.ACTION); // 指定广播Action
intent.putParcelableArrayListExtra(IntentConfig.BUNDLES, bundleList);
intent.putExtra(IntentConfig.ACTION_FAV, true); //true添加收藏动作,false取消收藏动作
intent.setPackage(IntentConfig.PACKAGE); // 限定当前收藏广播接收者的包名和权限
context.sendBroa独立appdcast(intent, IntentConfig.PERMISSION);
//考虑到数据安全,外发应用需要判断下是否是小米手机,如果是,则发送广播,否则取消发送
使用android.os.Build.MANUFACTURER,其值为Xiaomi即为小米设备
6.其他说明
6.1“我的收藏”已经支持哪些版本
MIUI 9及以上的版本都已经支持“我的收藏”功能。
6.2“我的收藏”是否还有进一步的合作方式
我们愿意与合作方一起探索更深入的合作,比如收藏商品降价提醒、追剧等可能的方向。
编辑:yimen,如若转载,请注明出处:https://www.yimenapp.com/kb-yimen/12234/
部分内容来自网络投稿,如有侵权联系立删