ios - 使用gmail打开时如何使深层链接颤动?
问题描述
我正在尝试在我的颤振应用程序中实现深度链接。我正在使用uni_links
颤振包。
我正在将我的应用程序的深层链接发送到用户的电子邮件帐户。但是,在 gmail 中,您需要在 href 值中使用 http 协议,否则 gmail 将不会将其视为有效链接。因此,我被迫在电子邮件中使用以下链接:
<a href="https://myexample.flutter.dev">Click here</a>
而不是像这样的链接,
<a href="myexample://flutter.dev">Click here</a>
现在https://myexample.flutter.dev
,当我从 gmail 打开链接时,它不会打开我的应用程序。
但是,如果我将CFBundleURLSchemes
密钥更改为myexample
和CFBundleURLName
,flutter.dev
当我myexample://flutter.dev
在浏览器中输入时,它会打开我的应用程序。但是,就像我之前提到的,这在 gmail 中不被识别为有效链接。
这里有什么问题?我该如何解决这个问题?
这是我的ios/Runner/Info.plist
:
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>myexample.flutter.dev</string>
<key>CFBundleURLSchemes</key>
<array>
<string>https</string>
</array>
</dict>
</array>
解决方案
第一个是自定义链接,你可以自己做
<a href="myexample://flutter.dev">Click here</a>
第二个是万能链接
您需要在后端提供文件才能使其工作。
通用链接仅适用于 https 方案,并且需要指定的主机、权利和托管文件 - apple-app-site-association。
<a href="https://myexample.flutter.dev">Click here</a>
PS。我认为现在到 2020 年底,处理深度链接的最佳方式是 Firebase 动态链接。也许未来的人会认为它应该更容易
推荐阅读
- java - Android广播接收器调用但不启动前台服务
- perforce - 如何使用 perforce 检查点?
- exchangewebservices - EWS:如何将公用文件夹 MAPI EntryID 转换为 EWS FolderID
- python - 绘制 KMeans 模型
- base64 - 基数 64。结局基本不
- node.js - 将节点 api 连接到 cosmosdb
- c# - 没有 CleintSecret 的 OAuth EWS 身份验证
- python - 如何制作 3-D 球体簇?
- powershell - 如何使用powershell从文件名的开头删除空格
- excel - 将字符串作为 VBA 中子的参数传递?