有点奇怪的情况。我们与外部合作伙伴合作,该合作伙伴公开了用户可以登录的网页。此网页采用名为returnURL
的参数。成功登录其服务后将调用此returnURL
,在此返回网址的末尾,我们的外部合作伙伴将添加我们之后可在应用程序中使用的令牌。
因为我在iOS工作,所以作为一个returnURL,我提供了我的应用程序的URL方案,以便网页可以在登录完成后调用它。
所以,就像这样。他们的网页:
http://www.theirwebpage.com/?param1=x¶m2=y&returnURL=myAppsName://
我在网页浏览中显示网页,在application:openURL:sourceApplication:annotation:
内我有返回的代码,我在其中解析与myAppsName://
问题
整个过程在iOS 6上运行正常,因为webview将调用应用程序的URL方案,这将触发application:openURL:sourceApplication:annotation:
。
但是,在iOS 7中永远不会调用application:openURL:sourceApplication:annotation:
方法。看起来更像是webview将自己称为myAppsName://{parameters}
然后失败(为了进一步说明,UIWebView调用webView:didFailLoadWithError:
在NSErrorFailingURLKey
内,我们可以找到完整的myAppsName://extraParam1=bar&token=foo
)。
iOS 7中是否发生了更改,此类调用(从UIWebView到应用程序本身)不再允许?
答案 0 :(得分:0)
xcode 5.0的问题。下载xcode版本5.0.1。清理所有构建〜/ Library / Developer / Xcode / DerivedData /〜。再建一次。