返回{AppName}不显示| iOS9 openURL

时间:2016-01-14 17:09:25

标签: ios ios9 deep-linking openurl

我正在使用以下代码:

NSString *customURLString = [NSString stringWithFormat: @"secondApp://?%@", [document fileId]];
NSURL *customURL = [NSURL URLWithString: customURLString];
[[UIApplication sharedApplication] openURL: customURL];

成功打开secondApp后,“Back To firstApp”未显示。有什么我想念的吗?在网上搜索这个答案,我正在努力确保“Back To firstApp”就在那里。

有没有人遇到过这个?

3 个答案:

答案 0 :(得分:2)

我找到了答案。

显然,如果你把它放在第二个应用的info.plist中,   enter image description here

并声明基于View控制器的状态栏外观为NO。它不会显示返回按钮。不太清楚为什么,但这解决了我的问题。

谢谢大家的支持!

答案 1 :(得分:1)

值得检查:"返回..."仅在statusBar可见时出现。你确定你的第二个应用程序显示statusBar吗?

我想到的唯一解释是你的第二个应用程序可以使用depracated全屏启动方法。请检查是否:

您的代码没问题,请检查一下这是否符合您的要求。

[[UIApplication sharedApplication] openURL: [NSURL URLWithString:@"https://stackoverflow.com"]];

如果是这样,您的第二个应用就会出现问题。

答案 2 :(得分:1)

像这样设置目标应用程序的info.plist。

<key>LSApplicationQueriesSchemes</key>
<array>
    <string>Myapp</string>
</array>
<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>com.Myapp.demo</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>Myapp</string>
        </array>
    </dict>
</array>

将此方法放入目标应用的AppDelegate.m

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
  return YES;
}

现在使用此来源应用程序打开目标应用程序。

NSString *customURLString = [NSString stringWithFormat: @"Myapp://"];
NSURL *customURL = [NSURL URLWithString: customURLString];

[[UIApplication sharedApplication] openURL: customURL];

这肯定会在状态栏上显示返回应用

您还可以在 Safari 中输入 Myapp:// 进行检查。它将使用返回Safari 打开您的应用。