在iOS中启动和恢复Safari应用程序的会话
我的用例是这样的,我想从safari启动我的应用程序,并从我的应用程序返回到Safari的相同会话。 第1步:在iOS中启动和恢复Safari应用程序的会话
- 启动我的应用程序从Safari浏览器[能够成功实现这一目标]
步骤2:通过维修器材从应用程序是在同一会话
- 启动野生动物园推出[步骤1]
如何实现步骤2?
下面的代码是启动野生动物园
NSString *strurl = @"http://www.google.com"
NSURL *url = [NSURL URLWithtring:strurl];
[[UIApplication sharedApplication] openURL:url];
注:上面的代码将推出Safari浏览器的URL specied。
- 我如何通过恢复以前的会话来启动Safari?
- 有没有送我的页面的唯一ID时,我从它启动一个应用程序,所以,当我尝试推出Safari浏览器从我的应用程序回来,这将是有益的Safari浏览器的任何posibility。[仅仅是一个模糊理念]。
PLease reply。
谢谢你, 的Suse
我觉得肯定是有办法来完成你在找什么在这里。既然你说你已经成功实现了第一步,那么听起来你已经为你的应用程序注册了一个自定义的URL方案,并且在Safari中设置了一个URL,用户点击它打开你的应用程序。让我们假设你的自定义URL方案是myApp://
在这种情况下,所有你需要做的就是嵌入任何信息,你的应用程序需要知道在哪里发送Safari浏览器作为URL的一部分,像myapp://mysite.com/page/to/display
然后,在应用程序委托的application:openURL:sourceApplication:annotation:
方法,您可以查看用于打开应用程序的URL,并存储您需要通知Safari返回的部分,本例中为mysite.com/page/to/display
。 (如果您使用的是iOS版本早于4.2,那么简单的方法application:handleOpenURL:
将改为调用。)
因此,让我们假设,在这个方法中,我们保存我们的财产openedURL
按如下方法给出的URL(本当你要重新启动Safari浏览器,只需使用保存的信息,打开Safari浏览器,以正确的地方
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
self.openedURL = openURL;
}
然后:代码放在你的应用程序代理)。你需要换出myApp:
方案与http:
,使其被发送到Safari浏览器:
NSURL *safariURL = [[NSURL alloc] initWithScheme:@"http"
host:[openedURL host]
path:[openedURL path]];
[[UIApplication sharedApplication] openURL:[safariURL autorelease]];
如果打开需要发其他信息到您的应用程序,这似乎是有可能的URL,那么你需要做的事情更复杂一些,但是你仍然可以在Safari中嵌入你想返回的页面作为查询参数或者类似的东西:myApp://process?arg1=foo,arg2=bar,safariContext=mysite.com/page/to/display
(当然有正确的URL编码)。
这有道理吗?