iOS開發 - 應用內開啟第三方應用並傳值

來源:互聯網
上載者:User

標籤:

首先說下這個功能, 應該都有接觸過。

比方,你下載了一個電子書,然後選擇開啟檔案的時候,可能會看到你手機中已經安裝的閱讀類App。

或者,你的QQ收到了某個檔案,你也能夠選擇本地的應用來開啟。

那這種功能,是怎麼實現的呢?

簡單來說。就是調用URL來實現第三方應用的開啟。


首先,被開啟的應用須要提供這個功能, 也就是,它須要注冊一個 URL Schemes,供第三方使用。


假設你想你的應用被調用, 你能夠這樣設定。

在 xxxx info.plist 檔案裡, 加入例如以下屬性

相似這樣:


注意, 這裡的URL Schemes必填, URL identifier選填。

另外,URL Schemes建議都小寫,由於之後接收到資料的時候,不區分大寫和小寫, 都是轉為小寫。

規定的格式是   URL Schemes://URL identifier


之後, 你須要在 Appdelegate.m中加入例如以下代碼, 來處理接受到請求後做出的處理

//處理URL請求- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{    NSLog(@"%@", url);        if ([[url scheme] isEqualToString:@"myurltest"])    {        //處理連結        NSString *text = [[url host] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];        UIAlertView *myAlert = [[UIAlertView alloc]initWithTitle:@"新訊息" message:text delegate:self cancelButtonTitle:@"知道了" otherButtonTitles: nil];        [myAlert show];                return YES;    }        return NO;}

這裡我寫了個示範, 推斷是否是開啟本應用的URL, 假設是, 就彈出一個警告框,顯示傳來的資料。

當然,傳來的資料要怎麼處理, 那看你自己了。



之後, 第三方應用就能夠直接調用開啟它了。

我們做個簡單示範, 用Safari來直接開啟。

這裡輸入myurltest://hello   表示開啟的應用的URL Schemes是 myurltest, 傳入的資料是hello



當然, 在應用中開啟,我們能夠使用例如以下方法:


NSURL *url  = [NSURL URLWithString:@"myurltest:"];[[UIApplication sharedApplication] openURL:url];

另外, 順便Mark一下一些已知的應用的URL Schemes

你所知道好玩有趣的 iOS URL schemes 有哪些?


iOS開發 - 應用內開啟第三方應用並傳值

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.