0

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

USSD 代码从任何电话的拨号器应用程序运行,如下所示:#144##1*1*4#例如。

我的应用程序基本上应该将用户重定向到拨号器应用程序并用#144# 填写电话号码。

看起来特殊字符无法使用 Linking.openURL 发送到 android dialer 应用程序......

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

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

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

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

我试图逃避特殊字符,没有成功。

你们能以任何方式帮助我吗,那是 UX 改进++

谢谢!!

4

1 回答 1

0

首先对 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>
于 2021-09-30T22:14:26.683 回答