codeigniter 如何在iOS中修复深度链接时,应用程序尚未安装在设备中?

c90pui9n  于 2022-12-07  发布在  iOS
关注(0)|答案(2)|浏览(145)

我正在使用Android和iOS的深度链接功能,我的后端是CI。当应用程序安装时,深度链接对Android和iOS都有效。但如果应用程序还没有安装,我就面临问题。
我曾这样试过:当任何用户点击链接,然后首先它会重定向到浏览器,然后从我的后端代码,我检查客户端设备类型。如果设备是Android,然后我重定向到Android应用程序,如果设备是iOS,然后它重定向到iOS应用程序。但当应用程序还没有安装,它停止工作。
对于Android,我已经把下面的代码:

header("Location: my.special.scheme://other/parameters/here")

对于iOS,已在URL之前添加了应用程序方案。
我想我已经描述了我所有的场景,请指导我在应用程序没有安装的情况下,应该如何重定向到应用商店或特定页面。

rggaifut

rggaifut1#

基本上,当你尝试使用上面提供的URI方案(my.special.scheme://other/parameters/here)进行深度链接时,由于应用程序没有安装,所以失败了。在这种情况下,你无法捕捉到失败并将用户重定向到其他地方。
您可以将BE设置为返回类似于以下内容的内容:

window.location.href = "my.special.scheme://other/parameters/here";
setTimeout(function () {
    window.location.href = ...store_link_for_your_app..;
}, 1000);

这样,如果深度链接失败,1秒后你会得到一个重定向。
重要提示:

xghobddn

xghobddn2#

希望对任何人有所帮助:

var deeplinkUrl = `yourscheme://myurl?param1=x&param2=y`;
//variable will check app installed or not
var change = false;
setTimeout(() => {
  if (!change) {
    var redirectUrl = "your store url";
    window.location = redirectUrl;
  }
}, 3000);
window.location = deeplinkUrl;
//handle event to check app installed or not
window.onblur = function () {
    change = true;
};
window.onfocus = function(){
    change = false;
}

相关问题