1

有点奇怪的情况。我们与外部合作伙伴合作,该合作伙伴公开了一个用户可以登录的网页。该网页采用一个名为returnURL. 这returnURL将在成功登录他们的服务时调用,并且在此返回 URL 的末尾,我们的外部合作伙伴将添加一个令牌,我们以后可以在应用程序中使用该令牌。

因为我在 iOS 中工作,所以作为 returnURL,我提供了我的应用程序的 URL 方案,以便网页可以在登录完成时调用它。

所以,事情是这样的。他们的网页:

http://www.theirwebpage.com/?param1=x&param2=y&returnURL=myAppsName://

我在 webview 中显示网页,并在application:openURL:sourceApplication:annotation:其中有返回代码,我在其中解析传递的参数myAppsName://

问题

这整个过程在 iOS 6 上运行良好,因为 webview 将调用应用程序的 URL 方案,这将触发application:openURL:sourceApplication:annotation:.

但是,该application:openURL:sourceApplication:annotation:方法在 iOS 7 中永远不会被调用。看起来更像是 webview 调用自身myAppsName://{parameters}然后失败(为了进一步解释,UIWebView 调用webView:didFailLoadWithError:NSErrorFailingURLKey我们可以在其中找到完整的myAppsName://extraParam1=bar&token=foo)。

iOS 7 中是否发生了变化,不再允许这种类型的调用(从 UIWebView 到应用程序本身)?

4

1 回答 1

0

xcode 5.0 的问题。下载 xcode 版本 5.0.1 。清理所有构建 ~/Library/Developer/Xcode/DerivedData/~ 。再次构建。

于 2013-10-29T10:42:29.540 回答