Flutter 跳转应用市场评分——超简洁实现

news2024/11/27 20:32:03

最近在做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实现真的很简单。

但是我觉得我们应该考虑:针对当前的产品背景和实际情况,还有没有其他更合理的实现方式?

做这个功能的目的是想拉一拉市场的评分,从而获得更多的转化。

我们在技术层面考虑的越全面越合理,那么到了产品那边产生的价值就会越大。

代码真的很少,但是却查了很多,思考了很多,所以选择记录下来。

希望这简短的代码可以帮你们快速的实现跳转应用市场评分的功能。

其他

真的没有找到华为和小米能直接跳转到应用市场评论栏的方法,好像是不支持的。

有谁找到了欢迎评论告知,谢谢~

创作不易~

给个赞吧~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/764128.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

经典目标检测R-CNN系列(1)开山之作R-CNN

经典目标检测R-CNN系列(1)开山之作R-CNN 2014年&#xff0c;大神RBG&#xff08;Ross Girshick&#xff09;等人将卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;应用于目标检测任务中&#xff0c;在PASCAL VOC 2012数据集上&#xff0c;能…

vue 如何发布并部署到服务器

一般情况npm run build即可 从而生成vue代码直接放到服务器即可 这里的具体情况要看package.json里面的配置从而使用命令 会生成dist就是该项目的发布包

软件测试项目经验重要吗?

目前从行业薪资排名看&#xff0c;IT行业是我们普通人能够接触到的高薪行业&#xff0c;像金融、银行和投行等高薪职位&#xff0c;张雪峰老师在他的视频中分析过&#xff0c;不是一般人可以拿捏的。IT行业的大部分岗位需要专业的技能&#xff0c;留给我们这些非计算机专业科班…

实现微信机器人开发,个微api

首先微信聊天机器人&#xff0c;是一种通过自然语言模拟人类进行对话的程序。通常运行在特定的软件平台上&#xff0c;如PC平台或者移动终端设备平台。 有兴趣的可以去进行测试&#xff08;E云管家&#xff09;&#xff0c;功能十分全面 文档测试过程中实现多项功能进行管理 …

数据结构--线性表的链式存储结构

这里写目录标题 链式存储结构链表简介格式分类头结点位置示意图与不带头结点的区别 链表的特点 单链表定义链表的代码实现简介实操 基本操作的实现初始化单链表销毁单链表清空单链表求单链表表长 二级目录二级目录二级目录二级目录二级目录二级目录 链式存储结构 链表 简介 格…

QML学习day1

QML学习day1 main.qml import QtQuick 2.15 import QtQuick.Window 2.15 import QtQuick.Controls 2.5Window {width: 640height: 480visible: truecolor:"blue"title: qsTr("Hello World")Button {//按钮id: btn1width: 50height: 50focus: true //聚焦…

P106-100组A卡(R5 240)指南

P106-100组A卡&#xff08;R5 240&#xff09;指南 不建议小白尝试 不建议小白尝试 不建议小白尝试文章目录 P106-100组A卡&#xff08;R5 240&#xff09;指南资料合集硬件软件基础卸载所有原驱动安装驱动修改注册表自动调用——只改一个注册表手动调用——改两个注册表 劝退…

软件设计原则

在软件开发中&#xff0c;为了提高软件系统的可维护性和可复用性&#xff0c;增加软件的可扩展性和灵活性&#xff0c;程序员要尽量根据6条原则来开发程序&#xff0c;从而提高软件开发效率、节约软件开发成本和维护成本。 开闭原则 对扩展开放&#xff0c;对修改关闭。在程序…

Leecode402:移掉 K 位数字

这道题一看想的是可能用回溯或者什么别的方法&#xff0c;但是那样的话时间复杂度非常高&#xff0c;而且也不适用于动态规划&#xff0c;所以观察的话&#xff0c;可以知道从前往后判断的话肯定是前面越小越好&#xff0c;所以只需要前面最小&#xff0c;整体就最小。因此从前…

子网掩码详解

1 子网掩码 IP地址是以网络号和主机号来标示网络上的主机的&#xff0c;我们把网络号相同的主机称之为本地网络&#xff0c;网络号不相同的主机称之为远程网络主机&#xff0c;本地网络中的主机可以直接相互通信&#xff1b;远程网络中的主机要相互通信必须通过本地网关&#…

酸蚀刻对钛医药材料纳米形态表面特性及活化能的影响

引言 由于商业纯钛(CP Ti)具有抗腐蚀性&#xff0c;并且具有哦合适的机械性能以及生物相容性&#xff0c;因此&#xff0c;目前一直被用作牙科植入材料。为了在临床手术中获得高水平的成功&#xff0c;CP Ti的表面质量和形貌是影响植入手术结果的最关键因素之一&#xff0c;近…

GPT使用技巧

五大原则 想要让ChatGPT产出有效的回答&#xff0c;需要遵循以下五个原则&#xff1a; 提问清晰&#xff1a; 请尽可能清晰地描述您的问题 简明扼要&#xff1a; 请尽量使用简单的语言和简洁的句子来表达您的问题 确认问题&#xff1a; 请确认您的问题是清晰、明确和完整…

python接口自动化--token登录(详解)

简介 为了验证用户登录情况以及减轻服务器的压力&#xff0c;减少频繁的查询数据库&#xff0c;使服务器更加健壮。有些登录不是用 cookie 来验证的&#xff0c;是用 token 参数来判断是否登录。token 传参有两种一种是放在请求头里&#xff0c;本质上是跟 cookie 是一样的&…

攻不下dfs不参加比赛(十一)

标题 为什么练dfs题目为什么练dfs 相信学过数据结构的朋友都知道dfs(深度优先搜索)是里面相当重要的一种搜索算法,可能直接说大家感受不到有条件的大家可以去看看一些算法比赛。这些比赛中每一届或多或少都会牵扯到dfs,可能提到dfs大家都知道但是我们为了避免眼高手低有的东…

手把手教会你使用Markdown

目录 一、Markdown是什么 二、Markdown优点 三、Markdown的基本语法 一、Markdown是什么 Markdown 是一种轻量级标记语言&#xff0c;创始人为约翰格鲁伯&#xff08;John Gruber&#xff09;。 Markdown 允许人们使用易读易写的纯文本格式编写文档&#xff0c;然后转换成…

四川大学计算机考研分析

关注我们的微信公众号 姚哥计算机考研 更多详情欢迎咨询 四川大学&#xff08;B&#xff09;考研难度&#xff08;☆☆☆☆&#xff09; 四川大学计算机考研招生学院是计算机学院、网络空间安全学院和视觉合成图形图像技术国防重点学科实验室。目前均已出拟录取名单。 四川…

【Linux】多线程(三)

文章目录 线程池线程安全的单例模式什么是单例模式什么是设计模式单例模式的特点饿汉实现方式和懒汉实现方式饿汉方式实现单例模式懒汉方式实现单例模式懒汉方式实现单例模式(线程安全版本) STL,智能指针和线程安全STL中的容器是否是线程安全的?智能指针是否是线程安全的? 其…

一维数组、二维数组与指针的关系以及理解

一维数组、二维数组与指针的关系以及理解 C语言中&#xff0c;关于数组与指针&#xff0c;我们一般理解为&#xff1a;数组名即为该数组首元素地址&#xff0c;也是数组的首地址&#xff0c;但是关于数组名与指针的联系远不止于此。 文章目录 一维数组、二维数组与指针的关系以…

指针作为输入参数和输出参数

指针作为输入参数 指针作为输出参数 可以知道&#xff0c;改变的是地址里面的值。

Jmeter性能测试 —— 性能测试的流程和术语

性能测试的流程 一、准备工作 1、系统基础功能验证 一般情况下&#xff0c;只有在系统基础功能测试验证完成、系统趋于稳定的情况下&#xff0c;才会进行性能测试&#xff0c;否则性能测试是无意义的。2、测试团队组建 根据该项目的具体情况&#xff0c;组建一个几人的性能测试…