成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS 內置URL schemes簡介

移動開發 iOS
iOS中支持幾種特殊的URL schemes,第三方的本地應用程序和運行在Safari的Web應用程序,通過這些URL schemes可以與iOS的系統應用進行整合,為的是為用戶提供一種無縫的用戶體驗過程。某些手機IOS應用中都會展示一些電話號碼信息,在用戶點擊這 些號碼時,通過使用規定內合適的URL,應用程序可以打開手機的Phone Application進行撥號呼叫操作。

       在IOS的應用中經常會看到一些應用程序通過某個點擊動作而直接跳到App Store頁面,開始很奇怪這種第三方應用于IOS的系統應用交互時怎么實現的。后來發現蘋果的開發者文檔中關于這種通信的實現是默認支持的,只要第三方 的應用符合規范即可,這里的規范就是指接下來我們要簡單介紹的東西——URL Schemes

       根據規定,IOS中支持幾種特殊的URL schemes,第三方的本地應用程序和運行在Safari的Web應用程序,通過這些URL schemes可以與IOS的系統應用進行整合,為的是為用戶提供一種無縫的用戶體驗過程。某些手機IOS應用中都會展示一些電話號碼信息,在用戶點擊這 些號碼時,通過使用規定內合適的URL,應用程序可以打開手機的Phone Application進行撥號呼叫操作。這是一種很快捷的方式,省去了用戶要記憶號碼,然后再逐次撥號的流程。

1.URL scheme打開方式

            根據第三方應用程序的類型,打開IOS系統應用的方式劃分為兩種
             (1) Native App或我們常稱呼的本地應用,可以通過UIApplication的openURL:方法來系統應用
             (2)Web App或我們常稱呼的Web應用,指的是那些運行在Safari瀏覽器中或通過UIWebView 內嵌入本地應用的的Web應用程序,可以通過點擊或長按操作打開系統應用。
           當然,順利打開系統應用的前提是二者都要保證提供指定的附和規范的URL scheme。

2.URL Scheme分類

           IOS支持的URL Schemes分為以下幾類

         (1)Mail Links(郵件鏈接)

          通過mailto協議來加載Mail應用程序,只要提供目標郵箱地址即可,代碼如下
           HTML頁面中

  1. <a href="mailto:frank@wwdcdemo.example.com">John Frank</a> 

           本地應用中

  1. if(![[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"mailto:frank@wwdcdemo.example.com"]] ){ 
  2. UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"" message:@"無法打開程序" delegate:nil cancelButtonTitle:@"確認" otherButtonTitles: nil] ; 
  3. [alert show] ; 

           另外也可以通過to,cc,bcc,subject,body字段來指定郵件的抄送,密送,主題,消息內容。參數值都要經過URL編碼處理。    

  1. mailto:foo@example.com?cc=bar@example.com&subject=Greetings%20from%20Cupertino!&body=Wish%20you%20were%20here! 

         (2)Phone links(電話鏈接)

          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協議的大部分的特殊字符。當URL包含*或#時,Phone應用是不會 進行撥號的。如果你的應用程序是tonguo用戶輸入或其他未知源獲取的,那么URL中的任何特殊字符都需要經過編碼。對于本地應用,可以使用 NSString的stringByAddingPercentEscapesUsingEncoding:方法來編碼。
         此外,IOS中的safari默認是執行號碼檢測的。然而,如果你得頁面包含了那些可以被檢測為號碼,但實際意義卻不是號碼的數字時,你可以選擇關閉當前頁面的號碼檢測行為。只要在頁面代碼加入以下元數據即可

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

        后面一頁將為您介紹Text links(文本鏈接)、iTunes links(iTunes鏈接)、Youtube links(Youtube鏈接)!

#p#

         (3)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="https://itunes.apple.com/cn/app/numbers/id361304891?mt=8">Numbers</a> 

            本地應用中

  1. [[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"http://maps.apple.com/?q=cupertino"]] ; 

           正確的地圖鏈接格式規則如下

                  域名必須為maps.apple.com

                  路徑不能為/maps/*

                  參數不能為q=*

                  參數不能包含view=text或dirflag=r

           (5)Youtube links(Youtube鏈接)

              Youtube鏈接用來加載YouTube應用程序或者鏈接值YouTube的web站點來播放指定的視頻。鏈接到Youtube的應用可以播放其視頻。鏈接是以http為開頭的,而非youtube。
              HTML頁面中

  1. <a href="http://www.youtube.com/watch?v=xNsGNlDb6xY">iPhone5</a> 
  2. <a href="http://www.youtube.com/v/xNsGNlDb6xY">iPhone5</a> 

             本地應用程序中

  1. //或 http://www.youtube.com/v/xNsGNlDb6xY 
  2. if(![[UIApplication sharedApplication]openURL:[NSURL URLWithString:@"http://www.youtube.com/watch?v=xNsGNlDb6xY"]] ){ 
  3. UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"" message:@"無法打開程序" delegate:nil cancelButtonTitle:@"確認" otherButtonTitles: nil] ; 
  4. [alert show] ; 

 

責任編輯:閆佳明 來源: oschina
相關推薦

2009-07-02 14:27:53

JSP內置對象

2015-06-26 09:59:19

UIWebViewiOSURL

2013-09-09 15:49:44

iOS應用內置付費IAP設置總結

2013-04-09 15:49:04

iOSSQLite基礎內容簡

2013-09-09 16:11:16

iOS應用內置付費IAP總結

2013-09-05 15:12:09

iOS應用內置付費In-App Purc

2011-06-01 14:50:55

iOS谷歌

2013-09-09 17:23:29

iOS應用內置付費IAP

2013-09-09 13:57:27

iOS應用內置付費In-App Purc

2020-08-12 09:11:36

iOS 13.5.1越獄root權限

2012-06-01 11:02:33

2011-05-31 13:50:11

路由器CiscoIOS

2011-05-31 13:15:03

路由器CiscoIOS

2013-07-21 18:04:22

ASIHttpRequiOS開發

2011-05-31 13:50:17

CiscoIOS

2011-05-31 13:15:05

路由器IOSCisco

2011-05-31 13:50:14

CiscoIOS

2014-07-10 10:02:01

iOSHome Kit框架

2011-05-31 13:52:22

口令CiscoIOS

2013-09-09 14:26:25

iOS應用內置付費In-App Purc
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一级黄色片日本 | 欧美不卡网站 | 国产精品综合久久 | 人干人人 | 国产成人精品999在线观看 | 精品国产一区一区二区三亚瑟 | 亚洲久久 | 欧洲一级毛片 | 国内av在线 | 国产福利久久 | 亚洲人成人一区二区在线观看 | 国产精品999| 久久久久久免费毛片精品 | 一级h片 | 成人av免费播放 | 伊大人久久 | 精品久久1| 亚洲一区二区三区四区五区中文 | 亚洲精品字幕 | 国产精品一区二区久久 | 华人黄网站大全 | 日本精品视频一区二区 | 在线成人 | 亚av在线| 九九免费视频 | 一区二区三区免费观看 | 羞羞的视频在线看 | 国产精品久久久久av | 午夜视频一区二区三区 | 中文字幕在线视频免费观看 | 国产视频一区二区在线观看 | 精品国产青草久久久久福利 | 久久精品亚洲精品国产欧美 | 日日干干夜夜 | 亚洲午夜av| 国产精品久久久久久久久污网站 | 国产美女视频 | 国产一区91精品张津瑜 | 亚洲国产一区二区视频 | 久久国产欧美日韩精品 | 日韩av电影在线观看 |