如何从Android应用程序打开Viber公共聊天

amrnrhlw  于 2023-01-28  发布在  Android
关注(0)|答案(4)|浏览(93)

我知道如何在Viber中打开与数字的对话:How to start Viber call from an Android app [new version]?
但是我怎么打开一个公共聊天室呢?有什么想法吗?
先谢了

sulc1iza

sulc1iza1#

这个Kotlin代码对我来说很好用

val viberPackageName = "com.viber.voip"
        val phone= "5757575757"

        try {
            activity?.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("viber://add?number=$phone")))
        } catch (ex: ActivityNotFoundException) {
            try {
                activity?.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$viberPackageName")))
            } catch (ex: ActivityNotFoundException) {
                activity?.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=$viberPackageName")))
            }
        }
9ceoxa92

9ceoxa922#

Java代码

public void addViberNumber(Context context,String phone) {
    String viberPackageName = "com.viber.voip";

    try {
        context.startActivity(new
                        Intent(Intent.ACTION_VIEW,
                        Uri.parse("viber://add?number="+phone)
                )
        );
    } catch (ActivityNotFoundException ex) {
        try {
            context.startActivity
                    (new Intent(Intent.ACTION_VIEW,
                            Uri.parse("market://details?id=+" + viberPackageName))
                    );
        } catch (ActivityNotFoundException exe) {
            context.startActivity(new Intent(Intent.ACTION_VIEW,
                            Uri.parse("https://play.google.com/store/apps/details?id=" + viberPackageName)
                    )
            );
        }
    }
}
sd2nnvve

sd2nnvve3#

我使用com.google.i18n.phonenumbers.PhoneNumber作为传递给它的模型,但功能是相同的。
对于Viber,您需要将countryCode和nationalNumber作为String格式,然后将其传递到Uri,并使用Viber指定的Intent URI。
然后,您只需启动Intent。

private fun launchViberChat(phoneNumber: Phonenumber.PhoneNumber) {
    val formatString = "${phoneNumber.countryCode}${phoneNumber.nationalNumber}"
    val intent = Intent(
        Intent.ACTION_VIEW,
        Uri.parse("viber://add?number=$formatString")
    ).apply {
        setPackage("com.viber.voip")
    }
    startActivity(intent)
}
ni65a41a

ni65a41a4#

要打开Viber公共聊天,您需要使用完整联系人的电话号码,并将char**+更改为%2B**。
例如:
+972526461150-是包含国家/地区代码和地区的完整电话号码
%2B972526461150-这是Viber的电话号码应该是这样的。
代码:

private void sendViaViber() {
    String textMessage =  "Hello my friend. How are you?";
    String phoneNumber = "%2B972526461150"
   
    String url = "viber://chat?number=" + phoneNumber + "&draft=" + textMessage;
    startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
}

相关问题