如果未使用 javascript 安装应用程序,则创建后备 URL

Create a fallback URL if app is not installed using javascript

我正在尝试制作一个插件,当用户在 Android 或 iOS 设备上浏览时,将正常的 links 转换为深度 links。因此,例如,它找到 link 并将其替换为深度 link,如下所示:

var facebookURL  = $('[href*="facebook.com"]');
var facebookDeep = 'fb://profile/123456789';
$(facebookURL).attr('href', facebookDeep);

单击 link 并安装 Facebook 后,link 将打开 Facebook 应用程序。但是,如果未安装 Facebook,则单击 link 时不会发生任何事情。所以我想如果 1000 毫秒后仍然有焦点在框架上,我会自动打开网络 URL:

$($(facebookURL)).click(function(){
  setTimeout(function(){
    if ($(this).is(":focus")) {
      location.href = 'https://facebook.com';
    } else {
      console.log('Focus was lost');
    }
  }, 1000);
});

但是这会记录 焦点丢失

关于我可以完成此任务的其他方法有什么想法吗?或者,如果有更简单的方法来创建后备。

改变这个:

if ($(this).is(":focus")) {

对此:

if ($(facebookURL).is(":focus")) {

更多信息:The 'this' problem