flutter开发实战-Universal Links配置及flutter微信分享实现

news2024/11/15 17:45:28

flutter开发实战-Universal Links配置及flutter微信分享实现

在最近开发中碰到了需要实现微信分享,在iOS端需要配置UniversalLink,在分享使用fluwx插件来实现微信分享功能。

一、配置UniversalLink

1.1、什么是UniversalLink

Universal link 是Apple在iOS9推出的一种能够方便的通过传统HTTPS链接来启动APP的功能,可以使用相同的网址打开网址和APP。当用户点击一个链接可以跳转到你的网站并获得无缝重定向到对应APP

1.2、苹果开发者账号配置

我们登录https://developer.apple.com/account/ 登录苹果开发者账号进入后,找到证书配置,
找到对应的appid,开通Associated Domains。

如图所示
在这里插入图片描述

得到Team id 和 bundle id

如图所示

在这里插入图片描述

1.3 创建apple-app-site-association

创建名为apple-app-site-association的文件
必须生成名字为 apple-app-site-association 的文件,没有后缀没有后缀没有后缀

“appID”: “teamId.yourapp’s bundle identifie”,
如"appID": “MJ989785AQE.com.my.myapp”,

文件的格式为图片内容中的格式,只可以修改details 数组中的内容,其他不能修改

{
    "applinks": {
        "apps": [],
        "details": [
            {
                "appID": "MJ989785AQE.com.my.myapp",
                "paths": [ "*","/app/*"]
            }
        ]
    }
}

注意:Universal Links必须支持https,Universal Links配置的文件(apple-app-site-association文件)paths不能带query参数,微信使用Universal Links拉起第三方App时,会在Universal Links末尾拼接路径和参数,因此App配置(apple-app-site-association文件)的paths必须加上通配符

“paths”: [“/*”] 路径为https域名后添加的文件夹路径

假设我们的链接为 https://www.baidu.com,
如果路径设置为"paths": [“/”] ,Universal Link链接为https://www.baidu.com,Associated Domains关联applinks:www.baidu.com
如果路径设置为"paths": [“/app/”] ,Universal Link链接为https://www.baidu.com/app/,Associated Domains关联applinks:www.baidu.com/app/

最后将配置好的指定文件apple-app-site-association,上传到HTTPS服务器的根目录下或者.well-known目录下,app在请求下载这个文件时优先从.well-known下载,如果请求不到文件,才会从根目录下载。

1.4 Xcode配置Associated Domains

根据上面的对应的关系,我们在Xcode配置Associated Domains

配置Associated Domains如图所示

在这里插入图片描述

1.5 配置工程的info.plist文件

我们需要在info.plist中添加LSApplicationQueriesSchemes

<key>LSApplicationQueriesSchemes</key>
	<array>
		<string>alipayshare</string>
		<string>alipay</string>
		<string>sinaweibohd</string>
		<string>sinaweibo</string>
		<string>weibosdk2.5</string>
		<string>weibosdk</string>
		<string>weibo</string>
		<string>sinaweibosso</string>
		<string>weixin</string>
		<string>wechat</string>
		<string>weixinULAPI</string>
		<string>mqqopensdkapiV4</string>
		<string>mqzone</string>
		<string>mqqwpa</string>
		<string>wtloginmqq2</string>
		<string>mqzoneopensdkapiV2</string>
		<string>mqzoneopensdkapi19</string>
		<string>mqzoneopensdkapi</string>
		<string>mqzoneopensdk</string>
		<string>mqqopensdkapiV3</string>
		<string>mqqopensdkapiV2</string>
		<string>mqq</string>
		<string>mqqOpensdkSSoLogin</string>
		<string>mqqapi</string>
	</array>

配置CFBundleURLTypes

在这里插入图片描述

<key>CFBundleURLTypes</key>
<array>
	<dict>
		<key>CFBundleTypeRole</key>
		<string>Editor</string>
		<key>CFBundleURLName</key>
		<string>weixin</string>
		<key>CFBundleURLSchemes</key>
		<array>
			<string>微信appId</string>
		</array>
	</dict>
	<dict>
		<key>CFBundleTypeRole</key>
		<string>Editor</string>
		<key>CFBundleURLName</key>
		<string>myapp</string>
		<key>CFBundleURLSchemes</key>
		<array>
			<string>myapp</string>
		</array>
	</dict>
</array>

1.6 验证universallink

在浏览器输入域名后如果已安装app可以选择打开app。如图所示

在这里插入图片描述

二、实现微信分享

2.1 微信开放平台配置

在配置好universallink后,在微信开放平台(https://open.weixin.qq.com/)配置universal links

如图所示

在这里插入图片描述

2.2 实现微信分享代码

在flutter端,我们可以使用fluwx来实现微信分享。

在pubspec.yaml中,引入fluwx: ^3.13.0,我这里使用的是3.13.0版本

代码实现,我们在app的入口中,添加代码

  
  void initState() {
    // TODO: implement initState
    super.initState();

    configWeixin();
  }

 ///配置微信fluwx
  void configWeixin() {
    registerWxApi(appId: "微信appId",universalLink: "配置的universalLink");
  }

实现分享功能

  void shareToWeixin() {
    WeChatShareTextModel weChatShareTextModel = WeChatShareTextModel(
      "来自Flutter的分享, Hahaha",
      scene: WeChatScene.SESSION,
    );

    shareToWeChat(weChatShareTextModel).then((value) {
      print('shareToWeChat result:$value');
    }).catchError((error){
      print('shareToWeChat error:$error');
    }).whenComplete(() {
      print('shareToWeChat whenComplete');
    });
  }

在这里插入图片描述

三、小结

flutter开发实战-Universal Links配置及flutter微信分享实现。内容较多,可能描述不准确,请见谅。

学习记录,每天不停进步。

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

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

相关文章

Vue中的router路由的介绍(快速入门)

路由的介绍 文章目录 路由的介绍1、VueRouter的介绍2、VueRouter的使用&#xff08;52&#xff09;2.1、5个基础步骤(固定)2.2、两个核心步骤 3、组件存放的目录&#xff08;组件分类&#xff09; 生活中的路由&#xff1a;设备和ip的映射关系&#xff08;路由器&#xff09; V…

管网水位监测仪:井下水位监测的创新者

随着城市化进程的不断推进&#xff0c;城市排水管网系统的完善和安全运行越来越受到社会和政府的关注。近期&#xff0c;国家加大了对城市基础设施建设的投入力度&#xff0c;推动了排水管网系统的升级和改造。在这样的背景下&#xff0c;万宾科技推出了一款全新的产品——管网…

canvas力导布局

老规矩&#xff0c;先上效果图 <html><head><style>* {margin: 0;padding: 0;}canvas {display: block;width: 100%;height: 100%;background: #000;}</style> </head><body><canvas id"network"></canvas> </…

1600*C. k-Tree(DP)

Problem - 431C - Codeforces 解析&#xff1a; #include<bits/stdc.h> using namespace std; #define int long long const int mod1e97,N110; int n,k,d,dp[N][2]; signed main(){scanf("%lld%lld%lld",&n,&k,&d);dp[0][0]1;for(int i1;i<n;…

Elasticsearch基础篇(四):Elasticsearch的基础介绍与索引设置

Elasticsearch的基础介绍与索引设置 一、Elasticsearch概述Elasticsearch简介什么是全文检索引擎Elasticsearch 应用案例 二、索引和文档的概念1. 索引&#xff08;Index&#xff09;2. 文档&#xff08;Document&#xff09; 三、倒排索引&#xff08;Inverted Index&#xff…

2.3 为何使用Pthreads

轻量 和进程相比&#xff0c;系统在创建和管理线程时的开销要小的多&#xff0c;这里通过比较调用fork()创建进程和pthread_create()创建线程时的耗时开销来说明。下表中的耗时为执行了50000次创建操作对应的耗时&#xff0c;单位为秒。 注意&#xff1a;由于是在具有多核的对称…

Pro有Pro的样,但适合是最好的!iPhone 15与15 Pro应该买哪一款

你正在考虑升级到最近发布的iPhone 15系列,但你不确定你应该选择iPhone 15还是iPhone 15 Pro。以下是两款手机的功能以及高级Pro升级功能。 从性能和摄像头功能到设计和定价,我们正在挖掘每一个差异,以便你能够根据自己的需求和预算选择最佳手机。 iPhone 15与iPhone 15 P…

el-form简单封装一个列表页中的搜索栏

父组件如何使用 代码中注释很多, 应该很容易理解 <template><div><wgySearchv-model"searchDefault":fields"searchFields"reset"reset"submit"submit"><!-- 通过 slot 自定义的组件 传啥都行 --><te…

段码屏学习

文章目录 1.液晶屏和OLED屏2.液晶屏原理3.码段屏原理4.单色点阵屏原理5.彩色点阵屏原理6.HT1621驱动LCD段码屏 1.液晶屏和OLED屏 答&#xff1a; 液晶屏&#xff1a;码段屏、单色点阵屏、彩色点阵屏。 OLED屏&#xff1a;消费类电子产品多&#xff0c;贵。 2.液晶屏原理 …

三相智能电表逆相序的原因及解决方法

随着电力系统的快速发展&#xff0c;智能电表已逐渐替代传统电表&#xff0c;成为我国电力系统的重要组成部分。在众多类型的智能电表中&#xff0c;三相智能电表以其高精度、稳定性和智能化程度&#xff0c;被广泛应用于工商业及居民用电领域。然而&#xff0c;在使用过程中&a…

许战海战略文库|主品牌老化:企业增长面临的关键挑战

在今天&#xff0c;大部分行业的竞争环境已经从匀速变化迭代为加速变化&#xff0c;主品牌老化成为企业增 长面临的重要挑战&#xff0c;这一点已经变得非常明显。技术革新、产业革命以及顾客需求的演变势不 可挡&#xff0c;跨周期竞争已经成为常态。在这种情况下&#xff0c;…

传统但是很简单的计算Renko大小方法,FPmarkets1分钟分享

Renko图表是一种经典的技术分析工具&#xff0c;其计算方法较为传统。交易者通常需要手动设置以点数表示的常量值来确定Renko砖块的大小。 今天FPmarkets1分钟分享&#xff0c;传统但是很简单的计算Renko大小方法&#xff0c;不用指标&#xff0c;就可以使用Excel电子表格来计…

北京怎么开股票账户?哪家证券公司股票开户佣金最低?

北京怎么开股票账户&#xff1f;哪家证券公司股票开户佣金最低&#xff1f; 开设股票账户可以去证券营业部或者线上找客户经理进行开户具体步骤如下&#xff1a; 准备好本人有效身份证明证件&#xff08;如居民身份证、护照等&#xff09;及银行卡。 填写开户申请表&#xff…

亚马逊,速卖通,敦煌产品测评补单攻略:低成本、高安全实操指南

随着电商平台的发展和消费者对产品质量的要求提升&#xff0c;测评补单成为了商家们提升销售和用户口碑的关键环节。然而&#xff0c;如何在保持成本低廉的同时确保操作安全&#xff0c;一直是卖家们面临的挑战。今天林哥分享一些实用的技巧和策略&#xff0c;帮助卖家们产品的…

docker 安装 neo4j

1. 安装所需的软件包 yum install -y yum-utils device-mapper-persistent-data lvm2 2. 设置阿里云仓库(国内仓库稳定) yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo3. 查看docker容器版本 yum list docker-ce --showdupl…

小白看得懂的 Transformer (图解)

来源&#xff1a;Python数据科学 来源&#xff1a;Python数据科学本文约7200字&#xff0c;建议阅读14分钟在本文中&#xff0c;我们将研究Transformer模型&#xff0c;理解它的工作原理。1.导语 谷歌推出的BERT模型在11项NLP任务中夺得SOTA结果&#xff0c;引爆了整个NLP界。…

低代码自动翻页采集山姆商品数据

1 前言 山姆超市以会员经营为主&#xff0c;会员需要向商家购买会员卡才可以获得购物权&#xff0c;享受更多的优惠和折扣&#xff0c;这种模式实际上是通过高质量的商品和服务吸引顾客忠诚度&#xff0c;建立"忠诚顾客"的经营模式。山姆超市的商品销售以大批次和整箱…

401-视频与网络应用篇-网络分层和常见网络协议

常使用的网络有广域网&#xff08;WAN&#xff09;、城域网、局域网&#xff08;LAN&#xff09;&#xff0c;一般我们遇到的场景是广域网和局域网&#xff0c;广域网就是常说的外网&#xff0c;而局域网一般用于学校、公司等场合。在家庭路由器中对应WAN口和LAN口。网络是极为…

学生宿舍智能电表改造解决方案

随着科技的发展和人们对环保意识的提高&#xff0c;节能减排已经成为当今社会的重要议题。学生宿舍作为学生生活、学习的重要场所&#xff0c;其能源消耗问题日益受到关注。为了提高学生宿舍的能源利用效率&#xff0c;降低能源消耗&#xff0c;智能电表改造成为了一种有效的解…

3、字符设备驱动框架和开发步骤

一、Linux内核对文件的分类 Linux的文件种类 1、-&#xff1a;普通文件2、d&#xff1a;目录文件3、p&#xff1a;管道文件4、s&#xff1a;本地socket文件5、l&#xff1a;链接文件6、c&#xff1a;字符设备7、b&#xff1a;块设备 Linux内核按驱动程序实现模型框架的不同&…