Flutter的安卓项目跳转谷歌市场

没找到相关资料  使用的跟android交互的方法实现的 先记录一下

使用project视图,在android-app-src-main-kotlin-包名目录下

1.新建GooglePlayPlugin文件

package com.demo.xxx;import android.annotation.SuppressLint;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.text.TextUtils;
import io.flutter.plugin.common.MethodCall;
import io.flutter.plugin.common.MethodChannel;
import io.flutter.plugin.common.PluginRegistry;/*** 跳转应用市场*/
public class GooglePlayPlugin implements MethodChannel.MethodCallHandler {static  MethodChannel channel;private Activity activity;public static String CHANNEL = "googleplay";  // 分析1GooglePlayPlugin(Activity activity){this.activity=activity;}public static void registerWith(PluginRegistry.Registrar registrar) {channel = new MethodChannel(registrar.messenger(), CHANNEL);GooglePlayPlugin instance = new GooglePlayPlugin(registrar.activity());channel.setMethodCallHandler(instance);}@SuppressLint("WrongConstant")@Overridepublic void onMethodCall(MethodCall methodCall, MethodChannel.Result result) {if (methodCall.method.equals("entergoogle")){String packageName=methodCall.argument("packageName");launchAppDetail(packageName,"com.android.vending");result.success(true);}else {result.notImplemented();}}/*** 启动到应用商店app详情界面** @param appPkg    目标App的包名* @param marketPkg 应用商店包名 ,如果为""则由系统弹出应用商店列表供用户选择,否则调转到目标市场的应用详情界面,某些应用商店可能会失败*/@TargetApi(Build.VERSION_CODES.DONUT)public void launchAppDetail(String appPkg, String marketPkg) {try {if (TextUtils.isEmpty(appPkg)) return;Uri uri = Uri.parse("market://details?id=" + appPkg);Intent intent = new Intent(Intent.ACTION_VIEW, uri);if (!TextUtils.isEmpty(marketPkg)) {intent.setPackage(marketPkg);}intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);activity.startActivity(intent);} catch (Exception e) {e.printStackTrace();}}}

注意:如果 应用商店包名为空 就会将手机上已下载的应用商店都列出来,让你选择一个进行跳转。

2.在MainActivity中注册

class MainActivity: FlutterActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)GeneratedPluginRegistrant.registerWith(this)registerCustomPlugin(this)}fun registerCustomPlugin(registry: PluginRegistry){GooglePlayPlugin.registerWith(registry.registrarFor(GooglePlayPlugin.CHANNEL))}}

3.在flutter中调用方法

 ///跳转谷歌市场  void goGooglePlayMarket() async {PackageInfo packageInfo = await PackageInfo.fromPlatform();//包名String packageName = packageInfo.packageName;print('===$packageName');const platform = MethodChannel('googleplay');try {await platform.invokeMethod('entergoogle', {'packageName': packageName});} on PlatformException catch (e) {print(e);}}

主流应用商店对应的包名如下:

包名 商店
com.android.vending Google Play
com.tencent.android.qqdownloader 应用宝
com.qihoo.appstore 360手机助手
com.baidu.appsearch 百度手机助
com.xiaomi.market 小米应用商店
com.wandoujia.phoenix2 豌豆荚
com.huawei.appmarket 华为应用市场
com.taobao.appcenter 淘宝手机助手
com.hiapk.marketpho 安卓市场
cn.goapk.market 安智市场
   

注意:

第1歩中调用launchAppDetail(String appPkg, String marketPkg)方法的marketPkg根据你想跳转的商店来选择,如果是谷歌市场就使用  com.android.vending,其他市场就在上面表格寻找对应的包名。

本文部分参考https://www.jianshu.com/p/a4a806567368,如有侵权,请联系删除。

Flutter的android项目跳转谷歌市场相关推荐

  1. android开发跳转应用市场进行版本更新

    1./*** 启动到应用商店app详情界面** @param appPkg 目标App的包名* @param marketPkg 应用商店包名 ,如果为""则由系统弹出应用商店列表 ...

  2. 开源项目—FLutter/iOS/Android编写的三个计算器APP

    前端时间使用Flutter,iOS,Android三种技术编写了三个相同功能的计算器APP,github地址,https://github.com/ThinkerJack/android-ios-fl ...

  3. flutter打开android界面,在已有Android项目中使用Flutter

    实现效果,在已存在的android项目中接入flutter,即android调用开启flutter页面(使用android打开flutter的指定页面),flutter调用原生android方法 步骤 ...

  4. Flutter中打包Android项目及升级Android项目

    1. 打包Android项目 1. 用Android Studio 打开Flutter项目中的 android 文件夹: 2.  选择生成签名的APK: 3. 选择打包成APK,没有系统版本的限制: ...

  5. Android 跳转应用市场评分

    在Android的App中,经常会见到这样的功能.从当前app跳转到一个应用商店且显示本软件详情的页面,让用户给自己的App进行评分,从而提高App的排名.下面介绍该功能的实现. /**** 跳转应用 ...

  6. Android项目架构设计深入浅出

    简介:本文结合个人在架构设计上的思考和理解,介绍如何从0到1设计一个大型Android项目架构. 作者 | 璞珂 来源 | 阿里技术公众号 前言:本文结合个人在架构设计上的思考和理解,介绍如何从0到1 ...

  7. github 开源android项目

    转自:http://blog.csdn.net/shulianghan/article/details/18046021 主要介绍那些不错个性化的View,包括ListView.ActionBar.M ...

  8. (转载) android项目大全,总有你所需的

    目录视图 摘要视图 订阅 赠书 | 异步2周年,技术图书免费选      程序员8月书讯      项目管理+代码托管+文档协作,开发更流畅 [置顶] android项目大全,总有你所需的 标签: 源 ...

  9. android 项目大全,总有你所需的

    android项目大全,总有你所需的 目录(?)[+] 注:打开请贴网址,有些直接通过链接打开的不正确. 1.相对布局实例 http://kukuqiu.iteye.com/blog/1018396 ...

最新文章

  1. Linux 配置多个Tomcat
  2. idea 执行 java jar_使用 Intellij Idea 打包 java 工程为可执行 jar 包-Go语言中文社区...
  3. get_free_page 和其友
  4. 【java学习之路】(java框架)004.Mybatis SQL映射文件详解
  5. php更新用户数据为空,php - 使用PHP更新数据库,而没有来自HTML表单的空值 - SO中文参考 - www.soinside.com...
  6. Clip_by_norm 函数理解
  7. 天猫八大策略人群京东十大靶向人群简介
  8. python手工打码_python云打码
  9. 名字作诗,拯救诗歌的最后一根稻草
  10. kuma相关istio
  11. java开发手机app教程,看完必懂
  12. 怎么有python画五角星_Python的画五角星
  13. 热水结冰比冷水快?半世纪争议终于解开
  14. LoadRunner通过SiteScope监控MySQL的性能
  15. php 中断请求,PHP 信号中断系统
  16. 在配置Intel realsense (D435i)时遇到的问题
  17. Culture Shock
  18. C4D模型工具—对齐法线
  19. SUB-1GHz 无线收发芯片DP4301性能兼容CMT2300跟进口的CC1101
  20. kali安装w3af出现的问题及解决方法(附w3af安装)

热门文章

  1. Ue4制作鼠标拖尾效果
  2. 线控转向,包含设计说明书,carsim模型,MATLAB Simulink模型全套(工程项目线上支持)
  3. 【商迪3D】与您细说什么是VR虚拟电子沙盘3D数字沙盘有什么功能
  4. java jre、jdk、server jre
  5. 2600万TRX被盗背后的罗生门 - 第二集
  6. Android日志打印Util类
  7. 【深度之眼cs231n第七期】笔记(四)
  8. 非计算机专业想学编程语言进入大数据岗位必读书单推荐
  9. BP API: cl_md_bp_maintain
  10. echarts 树图属性设置