如何从网页视图打开Android手机应用程序中的电话号码?

问题描述 投票:0回答:1

我有TMA(Telegram迷你应用程序),在卖家详细信息块上有一个按钮,用户可以使用该按钮通过卖家号码拨打电话。

问题:当用户单击电话号码按钮呼叫卖家时,会自动打开电话应用程序,而无需输入电话号码。

我目前的IOS工作解决方案:

const handleCall = () => {
  const phoneNumber = detailUserInfo.phone.trim().replace(/\D/g, '');
  if (phoneNumber) window.open(`tel:+${phoneNumber}`);
  else console.error('Invalid phone number');
};

<Button onClick={handleCall} size='large' variant='primary'>
   Make a call
</Button>

不幸的是,这个解决方案不适用于Android(实际上它在没有输入电话号码的情况下打开电话应用程序)。

我已经尝试过这样的解决方案:

对电话号码进行编码(不适用于任何操作系统)

const handleCallDefault = () => {
  const phoneNumber = detailUserInfo.phone.trim().replace(/\D/g, '');

  if (phoneNumber) {
    const formattedNumber = `+${phoneNumber}`;
    const encodedNumber = encodeURIComponent(formattedNumber);

    window.open(`tel:${encodedNumber}`, '_blank', '_system');
  } else {
    console.error('Invalid phone number');
  }
};

对象window.location.hef

const handleCallUtilsWindowLocation = () => {
  const phoneNumber = detailUserInfo.phone.trim().replace(/\D/g, '');

  if (phoneNumber) {
    const formattedNumber = `+${phoneNumber}`;
    const encodedNumber = encodeURIComponent(formattedNumber);

    window.location.href = `tel:${encodedNumber}`;
  } else {
    console.error('Invalid phone number');
  }
};

Next.js 链接组件(适用于 IOS)

<Link href={`tel:+${detailUserInfo.phone}`} target='_blank'>
  Make a call
</Link>

锚标签

<a href={`tel:+${detailUserInfo.phone}`} target='_blank'>
  Make a call
</Link>

任何此选项在 Telegram Web 视图中都无法正常工作,但在浏览器中可以正常工作。
预先感谢您的任何建议

html next.js dom telegram
1个回答
0
投票

这个问题已经在最新的 Telegram Mini App 更新中解决了。

© www.soinside.com 2019 - 2024. All rights reserved.