Launching Viber app via URL scheme on iOS

匿名 (未验证) 提交于 2019-12-03 03:03:02

问题:

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.

回答1:

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 


回答2:

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!



回答3:

as for now (26.03.2017), I found this URI are working:

  • viber://add?number=NUMBER - open user page
  • viber://forward?text=foo - share text with selected users
  • viber://chats - opens chat tab
  • viber://calls - opens calls tab
  • ??? - can't find how to open user's/contacts tab
  • viber://public - opens a public tab
  • viber://more - open more tab (the last one in the row)

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



回答4:

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 } 


回答5:

This works: "viber://chats" or "viber://calls"



回答6:

For Swift, you can do like that :)

let viberShareUrl = "viber://forward?text=\(shareUrl)" let url:NSURL =NSURL(string: viberShareUrl)!   UIApplication.sharedApplication().openURL(url) 


回答7:

viber://contact?number= mobile number 

It will open the particular user contact. Give user to select chat and call.
it worked for me!



回答8:

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.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!