ios 自定义URL Scheme启动App

Posted fei619730

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios 自定义URL Scheme启动App相关的知识,希望对你有一定的参考价值。

iPhone SDK可以把你的App和一个自定义的URL Scheme绑定。该URL Scheme可用来从浏览器或别的App启动你的App

如何响应从别的App里发给你的URL Scheme申请,由你决定:可以唤醒你的App;也可以传一些信息给你。

给自己的App注册一个URL Scheme非常简单,就是在info.plist文件里定义两个键值就OK。如下图所示:

1 添加一个叫URL types的键值。

2 给其下的Item 1添加一个URL identifier,格式为Reverse Domain Namecom.mycompany.myapp

3再加一个URL Scheme,然后给它定义一个值,任意字符串。比如:myapp

定义结束,就可以使用下面的模式来发送一个 URL

myapp://

myapp://some/path/here

myapp://?foo=1&bar=2

myapp://some/path/here?foo=1&bar=2
//    NSString *string =@"myapp:com.samli.myapp";
//    NSString *string =@"myapp://some/path/herecom.samli.myapp";
//    NSString *string =@"myapp://some/path/here?foo=1&bar=2com.samli.myapp";
    
NSString *string = @"myapp://?foo=1&bar=2com.samli.myapp" ;
    [[
UIApplication sharedApplication ] openURL :[ NSURL URLWithString :string]];
   
//URLstring myapp info.plist/URL types/URL Schemes.     //URLstring com.samli.myapp info.plist/URL types/URL identifer.
获取打开的URL 然后,你的 AppUIApplicationDelegate会收到一个消息。若你想自己处理该 URL,可以重载下面这个方法: 1 - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url   

2   

3     // Do something with the url here  

4  

例如,把传过来的URL保存在本地:


1 - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url  

2   

3     if (!url)  

4       

5         return NO;  

6       

7   

8     NSString *URLString = [url absoluteString];  

9     [[NSUserDefaults standardUserDefaults] setObject:URLString forKey:@"url"];  

10     [[NSUserDefaults standardUserDefaults] synchronize];  

11     return YES;  

12  

以上是关于ios 自定义URL Scheme启动App的主要内容,如果未能解决你的问题,请参考以下文章

转通过自定义的URL Scheme启动你的App

ios和android应用都可以注册自定义url scheme吗

自定义URL Scheme启动应用

通过注册的URL Scheme向目标APP传递参数

Android URL Scheme唤醒之门

iOS 唤起APP之URL Scheme