
在移动应用开发中,深层链接(deep linking)允许用户通过点击url直接跳转到应用内的特定内容页面,极大地提升了用户体验。然而,当尝试将用户从一个应用链接到amazon prime video或disney+ hotstar等流媒体服务时,开发者常会遇到一个普遍的挑战:使用标准的网页url(例如https://www.amazon.com/gp/video/...)或自定义uri scheme(如amzn://)往往无法成功唤起目标应用,而是默认在web浏览器中打开。
这与许多其他应用(如Netflix、Zee5,甚至Amazon Shopping应用本身)形成对比,这些应用通常能通过其标准网页链接顺利实现深层链接。这种不一致性使得开发者感到困惑,尤其是在确认目标应用的清单文件(Manifest)中已声明支持相关域名的情况下。
以下是尝试深层链接的常见代码模式,它使用Android的Intent.ACTION_VIEW来处理URL:
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class DeepLinkActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // 假设有一个主布局
// 尝试使用标准的Amazon Prime Video网页链接
String primeVideoUrl = "https://www.amazon.com/gp/video/detail/B01MSPI8JN/ref=atv_dp_share_cu_r";
// 尝试使用自定义URI Scheme (通常也无效)
// String primeVideoUrl = "amzn://video/detail/B01MSPI8JN/ref=atv_dp_share_cu_r";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(primeVideoUrl));
// 使用 createChooser 允许用户选择打开方式,但如果应用不响应,仍会打开浏览器
startActivity(Intent.createChooser(intent, "选择打开方式"));
}
}当上述代码中使用https://www.amazon.com/...这类链接时,尽管设备上已安装Amazon Prime Video应用,系统通常只会提供Web浏览器作为打开选项,或直接在默认浏览器中打开,而不是唤起Prime Video应用。
解决此类深层链接问题的关键在于,不要依赖于通用的网页URL,而是使用目标应用自身生成的、专用于深层链接的分享URL。对于Amazon Prime Video,这类链接通常以https://app.primevideo.com/detail?...的形式出现。
以下是获取Amazon Prime Video正确深层链接的步骤:
例如,通过此方法获得的链接可能类似于:https://app.primevideo.com/detail?gti=amzn1.dv.gti.xxxxxxxxxxxx&ref_=atv_dp_share_cu_r。将此链接替换到上述Java代码中的primeVideoUrl变量,即可成功实现深层链接。
// 使用从Amazon Prime Video应用中复制的正确链接 String correctPrimeVideoUrl = "https://app.primevideo.com/detail?gti=amzn1.dv.gti.xxxxxxxxxxxx&ref_=atv_dp_share_cu_r"; Intent intent = new Intent(Intent.ACTION_VIEW); intent.setData(Uri.parse(correctPrimeVideoUrl)); startActivity(Intent.createChooser(intent, "选择打开方式")); // 此时会提供Prime Video应用作为选项
注意事项:对于Disney+ Hotstar等其他流媒体应用,虽然具体的链接格式可能不同,但获取正确链接的原理和步骤是类似的:始终从目标应用内部的分享功能获取链接。
通过逆向工程或查看Android 11及更高版本中应用的“默认打开”设置(“应用信息” -> “默认打开” -> “支持的链接”),我们可以发现Amazon Prime Video应用在其清单文件中声明支持多个域名,包括amazon.com、app.primevideo.com、watch.amazon.com等。理论上,任何匹配这些域名的URL都应该能够唤起应用。
然而,实际测试表明,并非所有声明支持的域名都能可靠地唤起应用。对于Amazon Prime Video,app.primevideo.com前缀的链接表现出最高的可靠性,而amazon.com前缀的链接则常常失败。这可能与以下因素有关:
app.primevideo.com之所以更可靠,是因为它很可能是Amazon Prime Video团队专门为深层链接和应用间通信设计的入口。这些链接通常包含特定的内容标识符(如gti参数),应用可以根据这些标识符直接导航到相应的内容,而无需额外的解析或重定向。
深层链接是提升移动应用用户体验的重要功能,但其实现并非总是直截了当。对于Amazon Prime Video和Disney+ Hotstar这类流媒体应用,开发者应避免使用通用的网页URL,而是通过应用内部的分享功能获取专用的深层链接(如https://app.primevideo.com/detail?...)。理解这一关键差异并采取正确的策略,将大大提高深层链接的成功率,确保用户能够无缝跳转到目标内容。
以上就是深度链接到流媒体应用:Amazon Prime Video 的实战指南的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号