【问题标题】:Trouble Returning to App from External App从外部应用程序返回应用程序时遇到问题
【发布时间】:2015-04-26 21:56:35
【问题描述】:

我正在构建一个应用程序,用户可以在其中向特定演员打开 IMDB 应用程序,或者如果他们没有安装 IMDB 应用程序,则可以通过 Safari 访问该页面。

NSString *imdbWebLink = @"http://www.imdb.com/name/nm1090683/";
NSString *imdbAppLink = @"imdb:///name/nm1090683";

if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:imdbAppLink]) {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:imdbAppLink];
} else {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:imdbWebLink];
}

上面的代码工作正常,但我希望 IMDB 应用程序返回按钮将用户返回到我的应用程序。因此,我在应用程序的 info.plist 中设置了一个 URL 类型(命名为包标识符)和一个自定义 URL 方案(命名为包标识符,删除了句点)。然后我按照 x-callback-url 协议修改了 imdbAppLink:

imdbAppLink = @"imdb://x-callback-url/name/nm1090683/?x-success=custom_url_scheme&x-source=AppName";

IMDB 应用程序正确打开到请求的页面,但返回按钮将用户带到 IMDB 主屏幕,而不是我的应用程序。

我已经在 Stack 和 Google 上研究了几个小时,但无济于事,但有很多有趣的死胡同。正如莱娅公主曾经说过的:“帮帮我,欧比旺·克诺比;你是我唯一的希望。”

如果您访问上面的 imdb 链接,您会看到我的一些非 iPhone 工作,但我只想说我更希望用户直接返回到应用程序,而不是通过一堆 Home 按钮点击间接返回.

提前感谢您的帮助。

【问题讨论】:

    标签: ios url


    【解决方案1】:

    X-callback-url 必须在你打开的应用中实现,否则将不起作用。

    您有任何理由相信 IMDB 支持它吗?我没有看到http://x-callback-url.com/apps/ 列出的 IMDB。

    【讨论】:

    • 谢谢安德鲁。那讲得通。我希望既然谷歌有 Chrome 和地图,IMDB 也会有,而且你发布的列表不是最新的。问题是我也想在我的应用程序中对 Facebook 原生应用程序做同样的事情,而 Facebook 没有列出。
    • 我维护一个library for x-callback-url apps。它在安德鲁链接的官方列表底部提到。我每周更新一次,我总是向开发人员询问文档和支持。
    • 谢谢菲利普。我一定会检查出来的。也许 Facebook 和 IMDB(我有兴趣与之交流的两个应用程序)将来会支持 x-callback-url,我可以推送一个新版本。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-27
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    • 2021-01-19
    • 2011-08-30
    相关资源
    最近更新 更多