【问题标题】:Launching Viber app via URL scheme on iOS在 iOS 上通过 URL 方案启动 Viber 应用程序
【发布时间】:2015-08-13 01:00:13
【问题描述】:

我正在制作一个 iOS 应用程序,它可以打开 Viber 应用程序并自动呼叫某人或与该人聊天窗口。 Viber 是否有任何 url 方案可以做到这一点,例如:

viber://tel:<phone_number>
viber://chat:<phone_number>

我关注了this 链接,但它适用于 Android。

【问题讨论】:

    标签: ios url-scheme viber


    【解决方案1】:

    至于现在(26.03.2017),我发现这个 URI 正在工作:

    • viber://add?number=NUMBER - 打开用户页面
    • viber://forward?text=foo - 与选定的用户共享文本
    • viber://chats - 打开聊天标签
    • viber://calls - 打开通话选项卡
    • ??? - 找不到如何打开用户/联系人标签
    • viber://public - 打开公共标签页
    • viber://more - 打开更多选项卡(行中的最后一个)

    以及一些与公共帐户交互的链接 https://developers.viber.com/tools/deep-links/index.html - viber://pa?chatURI=hello&context=abcdefg&text=hi - 尝试将 hi 写入 hello 公众号

    支持论坛:https://support.viber.com/

    他们有 chrome 扩展 - https://support.viber.com/customer/en/portal/articles/2191386-new-chrome-web-extension#top

    【讨论】:

      【解决方案2】:

      我向 Viber 支持发送了一封邮件,他们告诉我这种 URL(使用电话号码打开 Viber 通话/聊天)不再受支持。输入时 Viber 版本为 5.6。

      看看他们的回答:

      support@viber.com

      “感谢您与我们联系。 不幸的是,Viber 中没有这样的选项。”


      我发现的唯一内容是转发消息的网址:https://www.viber.com/en/developers/share_on_viber 您可以指定文本,但不能指定收件人

      例子:

      viber://forward?text=foo
      

      【讨论】:

        【解决方案3】:
        viber://contact?number= mobile number
        

        它将打开特定的用户联系人。让用户选择聊天和通话。
        它对我有用!

        【讨论】:

          【解决方案4】:

          我找到了一种使用 Viber“几乎”通话的方法 - 通过添加联系人:

          viber://add?number=0123456789
          

          这将打开Viber“添加联系人”对话框,用户在添加为新联系人后终于可以拨打预期号码。

          在 5.6 Viber 上对此进行了测试。 也适用于 HTML:

          <a href="viber://add?number=%2B49150123456789">Viber me</a>
          

          但是,如果联系人不存在,第一次点击只会打开对话框,保存新联系人并返回到您的应用程序/页面。 再次单击相同的链接将直接打开带有呼叫按钮的联系人视图

          干杯!

          【讨论】:

            【解决方案5】:

            您可以使用此代码来完成您想要的:

            NSString *phoneNumber = @"1112223333";
            NSString * const viberScheme = @"viber://";
            NSString * const tel = @"tel";
            NSString * const chat = @"chat";
            NSString *action = @"<user selection, chat or tel>"; // 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
            }
            

            【讨论】:

            • 这确实将我重定向到 viber ,但会导致警告说“请求页面不可用”。
            • 如果一切正确,则可能意味着 Viber for iOS 不支持此功能。我的建议是尝试打开 Viber 本机 iOS 应用程序并查看使用的 url 的网站。我知道这是一项逆向工程任务。
            【解决方案6】:

            这指向联系页面

            viber://contact?number=38095xxxxxxx

            重要提示:不要在数字开头加上+,否则不起作用

            【讨论】:

            • Viber 无法识别没有 + 的数字。在我添加 plus 后,它按预期工作。
            • 这对我不起作用。 viber 还支持这个吗?
            【解决方案7】:

            这有效: “viber://chats”或 "viber://calls"

            【讨论】:

              【解决方案8】:

              对于 Swift,你可以这样做 :)

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

              【讨论】:

              • 虽然这段代码 sn-p 可以解决问题,包括解释 really helps 以提高您的帖子质量。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人!请edit您的答案添加解释,并说明适用的限制和假设。
              【解决方案9】:

              我不知道这是否适用于 iOS,但它适用于 Viber Desktop Windows 10。

              <a href="viber://chat?number=0912222222" class="viber"></a>
              

              它将打开一个与目标人的聊天窗口。于 2021 年 7 月 7 日测试。

              【讨论】:

                【解决方案10】:

                您可以使用检查

                [[UIApplication sharedApplication] canOpenURL:@"viber://url"];
                

                如果 Viber 应用程序安装在设备上,并且 viber 处理此 url 方案,它将返回 true,否则返回 false。

                【讨论】:

                • 此代码无效,请发布有效代码。 canOperURL: 需要 NSURL 而你正在传递 NSString
                猜你喜欢
                • 2021-04-14
                • 1970-01-01
                • 2019-12-26
                • 1970-01-01
                • 2013-05-03
                • 1970-01-01
                • 1970-01-01
                • 2019-01-22
                • 1970-01-01
                相关资源
                最近更新 更多