新浦京81707con > 注册购买 > 每日分享

原标题:每日分享

浏览次数:196 时间:2019-11-27

iOS开发:内置URL schemes

 在IOS的应用中经常会看见某个应用程序通过有个别点击动作而间接跳到App Store页面,最早很意外这种第三方应用于IOS的系统运用交互作用时怎么落到实处的。后来发觉苹果的开辟者文书档案中关于这种通讯的落到实处是私下认可支持的,只要第三方 的选用切合标准就能够,这里的正式正是指接下去我们要简要介绍的东西——UEnclaveL Schemes。

基于规定,IOS中扶植两种独特的U卡宴L schemes,第三方的本土应用程序和平运动转在Safari的Web应用程序,通过这一个U凯雷德L schemes能够与IOS的体系接收实行整合,为的是为顾客提供风度翩翩种无缝的顾客体验进度。某个手提式有线电话机IOS应用中都展览会示一些电话号码音信,在顾客点击这一个号码时,通过使用规定内切合的U汉兰达L,应用程序能够展开手提式有线电话机的Phone Application实行拨号呼叫操作。那是意气风发种超高效的方式,省去了客户要记得号码,然后再逐次拨号的流水生产线。

1.UKugaL scheme展开药情势

依赖第三方应用程序的门类,展开IOS系统利用的形式划分为二种 
             (1卡塔 尔(英语:State of Qatar) Native App或大家常称呼的本土利用,可以由此UIApplication的openUPAJEROL:方法来系统应用 
             (2卡塔尔国Web App或大家常称呼的Web应用,指的是那个运维在Safari浏览器中或通过UIWebView 内放置地面利用的的Web应用程序,能够因此点击或长按操作展开系统运用。 
           当然,顺遂张开系统选拔的前提是互相都要保障提供钦定的对应标准的UCRUISERL scheme。

2.URL Scheme分类

IOS帮忙的U卡宴L Schemes分为以下几类 

         (1卡塔尔Mail Links(邮件链接) 

          通过mailto磋商来加载Mail应用程序,只要提供目的邮箱地址就可以,代码如下
           HTML页面中

 
  1. <a href="mailto:[email protected]">John Frank</a> 

地面使用中

 
  1. if(![[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"mailto:[email protected]"]] ){ 
  2. UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"" message:@"不能张开程序" delegate:nil cancelButtonTitle:@"确认" otherButtonTitles: nil] ; 
  3. [alert show] ; 

除此以外也能够透过to,cc,bcc,subject,body字段来内定邮件的抄录,密送,主旨,消息内容。参数值都要通过U奥德赛L编码处理。    

 
  1. mailto:[email protected][email protected]&subject=Greetings from Cupertino!&body=Wish you were here! 

(2卡塔 尔(阿拉伯语:قطر‎Phone links(电话链接卡塔 尔(英语:State of Qatar)

tel左券用来运维Phone 应用,以至呼叫钦赐的号码。在网页上点击二个编号链接会弹出二个对话框来唤起顾客是或不是必要拨号,并在客商同意后开首拨号。在本地的采纳中,打开二个tel公约地址会直接拨号而对客商提醒。如下           HTMl页面中

 
  1. <a href="tel:1-408-555-5555">1-408-555-5555</a> 

本地使用中

 
  1. if(![[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"tel:1-408-555-5555"]] ){ 
  2. UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"" message:@"不能够开辟程序" delegate:nil cancelButtonTitle:@"确认" otherButtonTitles: nil] ; 
  3. [alert show] ;        

       为了防止恶意的号码重定向或更改通话行为以致帐号,Phone应用支撑tel合同的好些个的特殊字符。当UCRUISERL富含*或#时,Phone应用是不会 举办拨号的。若是你的应用程序是tonguo客户输入或别的未知源获取的,那么UQashqaiL中的任何特殊字符都要求通过编码。对于位置利用,能够行使 NSString的stringByAddingPercentEscapesUsingEncoding:方法来编码。           别的,IOS中的safari默许是试行号码检验的。然则,如若您得页面包罗了那八个可以被检查测试为号码,但实际意义却不是编号的数字时,你能够选取关闭当前页面包车型大巴数码检验行为。只要在页面代码到场以下元数据就能够

 
  1. <meta name = "format-detection" content = "telephone=no"> 

前面风流洒脱页将为您介绍Text links(文本链接卡塔尔国、iTunes links(iTunes链接卡塔 尔(英语:State of Qatar)、Youtube links(Youtube链接卡塔 尔(英语:State of Qatar)!

 

(3卡塔 尔(英语:State of Qatar)Text links(文本链接卡塔尔国

应用sms左券来加载Messages应用。该URL的正规格式为"sms:<phone>",在那之中<phone>是可选的,用来钦点sms音讯接受者的号码。参数值满含了数字," " , "-" , "." 。             HTML页面中

 
  1. <a href="sms:">Launch Messages App</a> 
  2. <a href="sms:1-408-555-1212">New SMS Message</a> 

地面利用中

 
  1. if(![[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"sms:1-408-555-1212"]] ){ 
  2. UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"" message:@"不恐怕开拓程序" delegate:nil cancelButtonTitle:@"确认" otherButtonTitles: nil] ; 
  3. [alert show] ; 

(4)iTunes links(iTunes链接)

iTunes链接用来链接到iTunes Store中的内容。通过Apple的 iTunes Link Maker我们能够低价的查询并得到应用程序的链接地址。              HTML页面中

 
  1. <a href="; 

本地使用中

 
  1. [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"] ; 

是的的地图链接格式法则如下

域名必须为maps.apple.com

路子无法为/maps/*

参数无法为q=*

参数不能包罗view=text或dirflag=r

(5)Youtube links(Youtube链接)

Youtube链接用来加载YouTube应用程序也许链接值YouTube的web站点来播放钦点的录制。链接到Youtube的运用能够播放其录制。链接是以http为初步的,而非youtube。                HTML页面中

 
  1. <a href="; 
  2. <a href="; 

当地应用程序中

 
  1. //或  
  2. if(![[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"] ){ 
  3. UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"" message:@"不能够展开程序" delegate:nil cancelButtonTitle:@"确认" otherButtonTitles: nil] ; 
  4. [alert show] ; 

 

schemes 在IOS的利用中日常拜看见部分应用程序通过有个别点击动作而平素跳到App Store页面,以前很想获得这种第三方选用于IOS的...

Link Address:

Scheme 配置

 

图片 1

每一日赋享 - 发送短信/邮件/打电话   

 

 

异常的粗略的法子了

  • (void)alert:(NSString *)msg
    {
        UIAlertView *alertView = [[[UIAlertView alloc] initWithTitle:msg message:@"" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil] autorelease];
        [alertView showWithBackground];
    }

  • (NSString*) cleanPhoneNumber:(NSString*)phoneNumber
    {
        NSString* number = [NSString stringWithString:phoneNumber];
        NSString* number1 = [[[number stringByReplacingOccurrencesOfString:@" " withString:@""]
                              //                        stringByReplacingOccurrencesOfString:@"-" withString:@""]
                              stringByReplacingOccurrencesOfString:@"(" withString:@""] 
                             stringByReplacingOccurrencesOfString:@")" withString:@""];
        
        return number1;    
    }

  • (void) makeCall:(NSString *)phoneNumber
    {
        if ([DeviceDetection isIPodTouch]){
            [UIUtils alert:kCallNotSupportOnIPod];
            return;
        }
        
        NSString* numberAfterClear = [UIUtils cleanPhoneNumber:phoneNumber];    
        
        NSURL *phoneNumberURL = [NSURL URLWithString:[NSString stringWithFormat:@"tel:%@", numberAfterClear]];
        NSLog(@"make call, URL=%@", phoneNumberURL);
        
        [[UIApplication sharedApplication] openURL:phoneNumberURL];    
    }

  • (void) sendSms:(NSString *)phoneNumber
    {
        if ([DeviceDetection isIPodTouch]){
            [UIUtils alert:kSmsNotSupportOnIPod];
            return;
        }
        
        NSString* numberAfterClear = [UIUtils cleanPhoneNumber:phoneNumber];
        
        NSURL *phoneNumberURL = [NSURL URLWithString:[NSString stringWithFormat:@"sms:%@", numberAfterClear]];
        NSLog(@"send sms, URL=%@", phoneNumberURL);
        [[UIApplication sharedApplication] openURL:phoneNumberURL];    
    }

  • (void) sendEmail:(NSString *)phoneNumber
    {
        NSURL *phoneNumberURL = [NSURL URLWithString:[NSString stringWithFormat:@"mailto:%@", phoneNumber]];
        NSLog(@"send sms, URL=%@", phoneNumberURL);
        [[UIApplication sharedApplication] openURL:phoneNumberURL];    
    }

  • (void) sendEmail:(NSString *)to cc:(NSString*)cc subject:(NSString*)subject body:(NSString*)body
    {
        NSString* str = [NSString stringWithFormat:@"mailto:%@?cc=%@&subject=%@&body=%@",
                         to, cc, subject, body];

    str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
    
}

11.png

在其余应用里就足以用来下语句运行你的app

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"BProject://"]];```
当然你也可以

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"AProject://"]];```
在自定义了 U揽胜L scheme 的使用中,app delegate 必得达成以下办法:

本文由新浦京81707con发布于注册购买,转载请注明出处:每日分享

关键词: 新浦京81707con 日记本 IPhoneDevelo

上一篇:图片滚动插件,图片切换效果插件

下一篇:没有了