最近接了個新需求, 就是須要從公司項目跳轉到第三方通信App的指定聯繫人的對話界面。大概就是跳轉到第三方APP時用手機號碼找到對應的聯繫人,而後自動到達這個聯繫人的對話界面進行溝通。 關於第三方App公司給了2個選擇, 一個是微信, 一個是WhatsApp,任選其一。 話說微信SDK常常接觸,WhatsApp卻是沒咋弄過,因而就決定先從微信入手。 看了微信的開發文檔,符合這個需求的只有分享功能,可是文檔提供的分享場景只有這三個:bash
分享到對話: WXSceneSession
分享到朋友圈: WXSceneTimeline
分享到收藏: WXSceneFavorite微信
並不支持分享給指定的聯繫人,我用第一種場景分享到對話作了測試,必需要本身手動選中聯繫人才能跳轉到對話界面,那這個就不符合需求了,因此微信Pass。app
再來看看WhatsApp, WhatsApp的官方文檔很是簡潔,並且不須要集成SDK,很是方便。幸運的是它對跳到到指定聯繫人界面對話有提供Custom URL Scheme,就是點擊對話功能。iphone
官方文檔: WhatsApp 的 點擊直接對話功能讓用戶無需將另外一方的電話號碼儲存到手機通信錄中也可與對方對話。只要您知道對方的電話號碼,您就能夠創建一個連接,容許您與對方對話,點擊該連接會直接打開對話窗。WhatsApp 手機應用程式和網頁版本支持點擊對話功能。 如要創建連接,請使用 wa.me/,其中的請填入聯繫人的完整國際格式電話號碼,省略任何前方的零號、括號或破折號。更多有關國際格式電話號碼的完整消息,請閱讀 此文章。請注意,電話號碼必須已綁定到一個有效的 WhatsApp 賬號。 正確:wa.me/15551234567 不正確:wa.me/+001-(555)1…>測試
1.簡而言之咱們只要用wa.me/ + 用戶手機號碼 新建一個連接進行跳轉就能實現咱們的需求。 話很少說直接上代碼:url
NSString *whatsappPhoneMumber = @"133XXXXXXXX」; NSString *url = [NSString stringWithFormat:@"https://wa.me/86%@",whatsappPhoneMumber]; NSURL *whatsappURL = [NSURL URLWithString: @"whatsapp://"]; NSURL *ChatsURL = [NSURL URLWithString: url]; //判斷本地是否存在WhatsApp應用,存在才進行跳轉 if ([[UIApplication sharedApplication] canOpenURL: whatsappURL]) { [[UIApplication sharedApplication] openURL: ChatsURL]; } else { // Cannot open whatsapp NSLog(@"不能打開WhatsApp"); } 複製代碼
須要注意的是:在代碼運行以前咱們須要先在info.plist 文件添加容許訪問 WhatsApp 的名單,不然沒法跳轉。spa
或者將 info.plist 以 Source Code 方式打開,添加如下代碼:code
<key>LSApplicationQueriesSchemes</key>
<array>
<string>whatsapp</string>
</array>
複製代碼
代碼運行效果:orm
2.若是想在跳轉後附帶上文字也很簡單,在後面拼接上text便可cdn
NSString *urlencodedtext = @"預先填入內容"
NSString *whatsappphonenumber = @"133XXXXXXXX";
NSString *url = [NSString stringWithFormat:@"https://wa.me/86%@/?text=%@",whatsappphonenumber,urlencodedtext];
複製代碼
參考連接: