【问题标题】:Deep Link in iOSiOS 中的深层链接
【发布时间】:2018-01-24 10:52:44
【问题描述】:

我从另一个开发者那里得到了一个链接,我的要求是如果已经安装了该应用程序,则打开该应用程序,否则重定向到应用程序商店。但它总是将我重定向到应用商店。它不会打开已安装的应用程序。你们能告诉我如何解决它吗?我需要在我的 info.plist 中添加一些东西来调用深度链接。我在这里分享代码建议我应该做什么。

【问题讨论】:

  • 您似乎正试图从您自己的应用中打开另一个应用 - 对吗?
  • 是的,它是正确的
  • 其他开发者是否确认他正确实现了深度链接?
  • 很遗憾,他正在休假,无法联系到他。他在另一个办公室。沟通差距很大:(

标签: ios objective-c deep-linking


【解决方案1】:

您必须在要打开的应用的 plist 中添加您在代码中签入的 url

假设你想从 App1 打开 App2

然后将其添加到 App2 的 plist 中

  <key>CFBundleURLTypes</key>
 <array>
<dict>
    <key>CFBundleURLName</key>
    <string>com.TestApp</string>
    <key>CFBundleURLSchemes</key>
    <array>
        <string>testApp.linking</string>
    </array>
</dict>

在 App1 中检查

 if(![[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"testApp.linking://?"]]){
     UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"App is not available!" message:nil delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
        [alert show];

    }

注意testApp.linking是一样的

【讨论】:

  • 您可能是对的,但我无权访问其他开发人员和项目以了解他在应用程序中使用的方案。我只有这个链接,我附在我的描述中。所以我可以在 App1 中使用相同的链接。
  • 是的,如果他的 plist 中不存在此设置,则无法打开其他应用
【解决方案2】:

您似乎正试图从自己的应用程序中打开另一个应用程序 - 我相信您正在做的是正确的处理方式。如果链接不能正常工作,它会让我相信其他应用程序不正确支持深度链接。在这种情况下,您需要联系其他开发人员并告诉他进行修复。

要确认这一点,您可以尝试在设备上的 Safari 浏览器中打开该链接,如果配置正确,它应该会将您重定向到应用程序。如果它没有将您从 Safari 应用程序重定向到那里,则意味着其他开发人员有一些工作要做。

【讨论】:

  • 是的,我也尝试在 Safari 中打开此链接,但它再次将我重定向到应用商店,尽管该应用已安装。好的,然后我尝试与另一位开发人员交谈。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-27
  • 1970-01-01
  • 1970-01-01
  • 2016-06-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多