创建一个 link 将打开 Viber 和 WhatsApp 并向我发送消息

Create a link that will open Viber and WhatsApp and will send a message to me

身边的人都习惯用IM。在我的网站上,我需要放置一个 link 来打开给定的即时消息应用程序(在 PC 和移动设备上)并打开向我的号码发送消息 - 但我找不到方法!

我想使用一些 URL 方案来做到这一点,但我只能找到(__number 是我的手机 phone 号码):

<a href="intent://send/__number__#Intent;scheme=smsto;package=com.whatsapp;action=android.intent.action.SENDTO;end">WhatsApp</a>

<a href="viber://add?number=__number__">Viber</a>

(我什至不知道我应该在+1202...中使用phone还是简单的1202...(即如果需要加号)

但坦率地说,这是行不通的。 Viber 打开它的 window 然后告诉我它不会处理那个请求,并且 WhatsApp 根本没有 linked 到 intent 方案(在几个设备和操作系统上测试)。

所以,我请你帮我解决这个小问题:什么样的 URL 会打开 Viber 和 WhatsApp 应用程序让网站的访问者与我联系?

你需要的是deep-linkingviberwhatsapp的一些例子是:

Viber:

<a href="viber://pa?chatURI=[public account URI]&text=[message text]"> some text </a>

WhatsApp:

<a href="whatsapp://send?abid=[users name]&text=[message text]"> some text </a>

虽然不深 link,但您也可以使用以下 url(不要在 phone 上使用 +)用于 WhatsApp :

<a href="https://api.whatsapp.com/send?phone=0000000">Contact Me</a>

来源:

http://origamiengine.com/deep-linking
https://support.viber.com/customer/en/portal/articles/2872423-deep-links

既然你不想创建一个 public 帐户(又名 viber links 包括 /pa?)那么简单地添加 link:<a href="viber://chat?number=012345678901"">chat with me</a> 前两位是国家代码,不需要+号。

对于 WhatsUp,您可以使用此 link,这将在移动设备上打开与您的聊天,只需输入您的 phone,不带 + 号。

<a href="https://api.whatsapp.com/send?phone=123456789">WhatsUp</a>

whatsapp 很容易。

使用以下格式 **https://wa.me/123456/** 就是这样。这里 123456 表示您的 whatsapp 号码和国家代码。 不要包含 + 或前面的 00,只需将您的号码与国家/地区代码放在一起即可。比如 912232232。 这里 91 是国家代码,其余是 phone 号码。这适用于该应用程序,也适用于 whatsapp 网络。

对于 Viber,此格式适用于 public 个帐户。如果您有 viber 用户名,您可以使用相同的方法。

https://viber.me/username/ 会将您发送到该页面。

这甚至适用于 facebook。如果您的 Facebook 个人资料对搜索引擎可见,您可以使用此方法。

使用上面的格式 fb.me/username 这会将您重定向到用户的 Facebook 页面。我认为它也适用于页面。但我 tried.I 不相信它应该有效。

实际上 viber://add?number=XXXXXXXXX 不适用于桌面应用程序,它仅在您从移动 phone 打开时才有效。对于桌面,您需要使用 viber://chat?number=XXXXXXXXX.

对于whatsapplink很简单:https://wa.me/XXXXXXXXXX.

记住如何为所有信使生成 links 是不真实的,所以我总是使用 https://msng.link/ 生成 whatsapp 和电报 link,这很容易。

Viber link 给用户应该是这样的:

viber://contact?number=%2B0000000000000

使用不带 + 但带 %2B 的国际电话号码格式。

Viber 针对台式机和移动设备使用不同的 links。

对于移动设备:

<a href="viber://chat?number=PHONE_WITHOUT_PLUS">Text to Viber</a>

<a href="viber://add?number=PHONE_WITHOUT_PLUS">Add the phone to Viber</a>

对于桌面设备:

<a href="viber://chat?number=+PHONE_WITH_PLUS">Text to Viber</a>

<!-- or use %2B = + -->

<a href="viber://chat?number=%2BPHONE_WITH_PLUS">Text to Viber</a>

应该安装 Viber。

在服务器代码中需要通过用户代理检测用户设备的类型(桌面或移动)或使用CSS规则(例如,@min-width())或JS来显示必要的link.

PHP(没有任何库):

function isMobile($userAgent) { 
    $userAgent = strtolower($userAgent);
    $mobileAgents = array('ipad', 'iphone', 'android', 'pocket', 'palm', 'windows ce', 'windowsce', 'cellphone', 'opera mobi', 'ipod', 'small', 'sharp', 'sonyericsson', 'symbian', 'opera mini', 'nokia', 'htc_', 'samsung', 'motorola', 'smartphone', 'blackberry', 'playstation portable', 'tablet browser');
     
    foreach ($mobileAgents as $value) {    
        if (strpos($userAgent, $value) !== false) return true;   
    };     
    
    return false; 
};
    
// Gets a user agent from the server variable
$agent = $_SERVER['HTTP_USER_AGENT'];
// Gets a user agent from Laravel Request
$agent = request()->userAgent();

$mobile = isMobile($agent);

// Simple PHP output
<?php if($mobile): ?>
   <a href="viber://chat?number=PHONE_WITHOUT_PLUS">Text to Viber</a>
<?php else: ?>
   <a href="viber://chat?number=+PHONE_WITH_PLUS">Text to Viber</a>
<?php endif; ?>

HTML & CSS with the Twitter Bootstrap v5 (Large lg ≥992px):

<a href="viber://chat?number=PHONE_WITHOUT_PLUS" class="d-lg-none">Text to Viber (Mobile)</a>
<a href="viber://chat?number=+PHONE_WITH_PLUS" class="d-none d-lg-block">Text to Viber (Desktop)</a>
viber://chat?number=%2B977-9800000000

对我来说,这适用于桌面和移动设备。我用 %2B 替换了 +。