2016-03-17 1 views
3

У меня есть веб-страница с якорем, у которой есть href = "whatsapp: + (xxxxxxxxx)", если я нажму на нее на своем iPhone (iOS 9), он открывает WhatsApp в чате для этого контакта (я могу видеть все чаты, которые я сделал с контактом). Однако, если я делаю это программно (тот же url), он открывает только WhatsApp на вкладке чата.IOS - Невозможно открыть чат Whatsapp программно, но может сделать это через HTML

Я пробовал другие способы сделать это (используя адресную книгу api и используя «whatsapp: // send? Abid = RECORDID»), но все сбой.

Любая помощь будет очень признательна.

ответ

7

Вы должны добавить схему URL WhatsApp для вашего приложения Info.plist

<key>LSApplicationQueriesSchemes</key> 
<array> 
    <string>whatsapp</string> 
</array> 

Согласно Apple Developer documentation

ВАЖНО Если ваше приложение связано с или после прошивкой 9.0, вы должны объявить URL-схемы, которые вы хотите передать этому методу. Сделайте это, используя массив LSApplicationQueriesSchemes в файле Info.plist проекта Xcode. Для каждой схемы URL, которую вы хотите, чтобы ваше приложение использовало этот метод, добавьте его в виде строки в этом массиве.

Если ваше приложение (iOS 9.0 или новее) вызывает этот метод с использованием схемы, которую вы еще не объявили, метод возвращает NO, независимо от того, установлено или нет соответствующее приложение для схемы на устройстве.

1

работает нормально с Xcode 8.3.2 и быстрым 3

let date = Date() 
    let msg = "Hi my dear friends\(date)" 
    let urlWhats = "whatsapp://send?phone=phoneNumber&abid=phoneNumber&text=hi" 
    if let urlString = urlWhats.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed) { 
     if let whatsappURL = NSURL(string: urlString) { 
      if UIApplication.shared.canOpenURL(whatsappURL as URL) { 
       UIApplication.shared.openURL(whatsappURL as URL) 
      } else { 
       print("please install watsapp") 
      } 
     } 
    }