最近在做flutter跳转去应用市场评分的功能,虽然是一个很小的功能,但是要做的既简单又高效,同时又能把细节考虑到,还是有坑要走的,这边记录一下。
背景
做应用市场相关的运营,在app内增加评分引导,提高市场好评数量和评分
预期
1. 直接跳转到手机自带的应用商店,不要拉起应用商店选择弹窗
- 尽量让用户少一步操作,并且有的商店并没有上架我们的产品,万一用户点到其他市场那好不容易的转化就没了
2. 尽量跳转到应用商店的评论栏,甚至拉起评论弹窗
- 这个不是每个应用商店都支持的,但是如果能做到,把用户服务到极致,还是能大幅的提升转化率的
3. 如果我们的APP没在该品牌的应用商店上架,不做跳转
- 现在这几年基本就是华米OV了,其他手机占比也少很多了,对于其他应用市场,其实连评分引导的弹窗也没必要去显示了,避免打扰到这一部分用户
常见方案
其实在网上搜一大圈,Android的跳转大概就是这么几种方式
常见方案 | 优点 | 缺点 |
---|---|---|
通过market://details?id=xxx跳转 | 简单直接 | 会唤起系统应用商店选择弹窗 |
拉取应用商店列表定制跳转 | 可指定相应的应用市场 | 实现繁琐 |
通过渠道包判断定制跳转 | 可指定相应的应用市场 | 实现繁琐/渠道包不一定准确(当然关于渠道包可能有特定的产品需求) |
判断设备型号定制跳转 | 可指定相应的应用市场 | 不一定准确,存在品牌和商店不对应的情况,如一加手机是oppo应用商店 |
思考
用Flutter实现还跟Android原生不一样,最好能简单一点,其实我觉得直接通过Uri跳转就可以了
最关键的就是两点:
1. 如何判断跳转对应的应用商店?
- 思来想去:oppo跳转不了vivo,vivo跳转不了华为,那么为什么非要通过某个条件判断呢?跳转不了就不跳了!oppo手机的用户总不能装华为应用商店吧?就算真有这用户,那么也是极少数,况且就算是这样也算是跳转到了某市场,也有了评论的转化。
2. 能不能跳到评论栏?
- 这个只能尽力而为,看看哪家支持?
解决问题
所以就有了这个方案:
方案 | 优点 | 缺点 |
---|---|---|
循环遍历应用市场url列表 | 超级简单/可指定相应的应用市场 | 几乎无 |
各厂商及ios跳转市场评分对比
应用内拉起评分弹窗 | 跳转后进入详情页的 | |
---|---|---|
华为 | 不支持 | 推荐栏 |
小米 | 不支持 | 详情栏 |
oppo | 部分手机支持 | 评论栏 |
vivo | 不支持 | 评论栏 |
ios | 支持/可评星不可评论 | 评论弹窗 |
附:
vivo应用评论调起能力接入指南:https://dev.vivo.com.cn/documentCenter/doc/257
oppo应用评论调起能力接入指南:https://open.oppomobile.com/new/developmentDoc/info?id=11038
实现方式
pubspec.yaml中依赖url_launcher这个三方库
核心代码
List<String> _marketUrls = [
"vivomarket://details?id=your_package_name&th_name=need_comment",
"oaps://mk/developer/comment?pkg=your_package_name",
"appmarket://details?id=your_package_name",
"mimarket://details?id=your_package_name",
"itms-apps://itunes.apple.com/app/idyour_package_id?action=write-review",
];
Future<String?> _getLaunchUrl() async {
for (String item in _marketUrls) {
if (await canLaunchUrl(Uri.parse(item)) {
return item;
}
}
return null;
}
// 评分引导弹窗出现的时机调用:
if (await _getLaunchUrl() != null) {
// 显示评分引导弹窗
}
// 评分按钮点击事件调用:
Future<void> _toMarket() async {
String url = (await _getLaunchUrl())!;
await launchUrl(Uri.parse(url);
}
总结
直接通过market://details?id=xxx实现真的很简单。
但是我觉得我们应该考虑:针对当前的产品背景和实际情况,还有没有其他更合理的实现方式?
做这个功能的目的是想拉一拉市场的评分,从而获得更多的转化。
我们在技术层面考虑的越全面越合理,那么到了产品那边产生的价值就会越大。
代码真的很少,但是却查了很多,思考了很多,所以选择记录下来。
希望这简短的代码可以帮你们快速的实现跳转应用市场评分的功能。
其他
真的没有找到华为和小米能直接跳转到应用市场评论栏的方法,好像是不支持的。
有谁找到了欢迎评论告知,谢谢~
创作不易~
给个赞吧~