React Native 链接 openURL:使用特殊字符,如 # 和 *

React Native Linking openURL : Use special characters like # and *

我正在构建一个能够通过 USSD 代码(在非洲广泛使用)触发移动支付的 React Native 应用程序。

USSD 代码是 运行 来自任何 phone 的拨号程序,看起来像这样:例如 #144##1*1*4#

我的应用基本上应该将用户重定向到拨号器应用,并用 #144# 填充 phone 号码。

使用 Linking.openURL...

似乎无法将特殊字符发送到 android 拨号器应用程序

这个 Linking.openURL(`tel:+221786756172`)

工作得很好,我有一个重定向并且 phone 号码已填充。

但是这个 Linking.openURL(`tel:#144#`)

不起作用,拨号器应用程序的字段仍然是空的...

我尝试转义特殊字符,没有成功。

你们能以任何方式帮助我吗,那就是用户体验改进++

谢谢!!

先对USSD代码进行编码再使用。您可以使用以下功能:

const phoneShare = (number) => {
    let phoneNumber = '';
    if (Platform.OS === 'android') { phoneNumber = `tel:${encodeURIComponent(number)}`; }
    else { phoneNumber = `telprompt:${number}`; }
    Linking.openURL("" + phoneNumber + "");
};

如何使用?

<TouchableOpacity onPress={() => phoneShare('#144#')}>
    <Text>Press Me</Text>
</TouchableOpacity>