I'm making an iOS app which can open Viber app and automatically call a person or go to chat window with the person. Is there any url scheme for Viber to do that such as:
viber://tel: viber://chat:
I followed this link but it's for Android.
I'm making an iOS app which can open Viber app and automatically call a person or go to chat window with the person. Is there any url scheme for Viber to do that such as:
viber://tel: viber://chat:
I followed this link but it's for Android.
I sent a mail to the Viber support and they told me that this kind of URL (opening Viber call/chat with a phone number) are no more supported. When typing Viber version is 5.6.
Look at their answer:
support@viber.com:
"Thank you for contacting us. Unfortunately, there isn’t such option in Viber."
The only thing I've found is an url to forward a message: https://www.viber.com/en/developers/share_on_viber you can specify the text but not the recipient
Example:
viber://forward?text=foo
I've found one way to "almost" call using Viber - by adding contact:
viber://add?number=0123456789
This will open Viber "Add Contact" dialog, and user can finally call expected number after adding it as a new contact.
Tested this on 5.6 Viber. Also works from HTML:
Viber me
However, if contact doesn't exist, the first click would only open the Dialog, save new contact and go back to your application/page. Clicking the same link again will open directly contact view with Call out button
Cheers!
as for now (26.03.2017), I found this URI are working:
and some links to interact with Public Accounts https://developers.viber.com/tools/deep-links/index.html - viber://pa?chatURI=hello&context=abcdefg&text=hi - attempt to wrte hi to hello public account
support forum: https://support.viber.com/
and they have chrome extension - https://support.viber.com/customer/en/portal/articles/2191386-new-chrome-web-extension#top
You could use this code to accomplish what you want:
NSString *phoneNumber = @"1112223333"; NSString * const viberScheme = @"viber://"; NSString * const tel = @"tel"; NSString * const chat = @"chat"; NSString *action = @""; // this could be @"chat" or @"tel" depending on the choice of the user if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:viberScheme]]) { // viber is installed NSString *myString; if ([action isEqualToString:tel]) { myString = [NSString stringWithFormat:@"%@:%@", tel, phoneNumber]; } else if ([action isEqualToString:chat]) { myString = [NSString stringWithFormat:@"%@:%@", chat, phoneNumber]; } NSURL *myUrl = [NSURL URLWithString:[viberScheme stringByAppendingString:myString]]; if ([[UIApplication sharedApplication] canOpenURL:myUrl]) { [[UIApplication sharedApplication] openURL:myUrl]; } else { // wrong parameters } } else { // viber is not installed }
This works: "viber://chats" or "viber://calls"
For Swift, you can do like that :)
let viberShareUrl = "viber://forward?text=\(shareUrl)" let url:NSURL =NSURL(string: viberShareUrl)! UIApplication.sharedApplication().openURL(url)
viber://contact?number= mobile number
It will open the particular user contact. Give user to select chat and call.
it worked for me!
You can check by using
[[UIApplication sharedApplication] canOpenURL:@"viber://url"];
if Viber app is installed on device, and viber handle this url scheme it will return true otherwise false.