在Google Play商店上的React Native应用中使用SMS的困难

nr7wwzry  于 6个月前  发布在  React
关注(0)|答案(2)|浏览(100)

我在将React Native应用部署到Google Play商店进行生产发布时遇到了一个问题。该应用使用react-native-otp-verify库来自动读取OTP消息。虽然该功能在本地开发中运行良好,但在部署到Play商店时,我面临着SMS权限的挑战。
下面是相关代码的一个片段:

import {
  getHash,
  startOtpListener,
  removeListener,
} from 'react-native-otp-verify';

// // using methods
useEffect(() => {
  getHash()
    .then(hash => {
      // use this hash in the message.
      console.log('hash', hash);
    })
    .catch(console.log);

  startOtpListener(message => {
    console.log('message', message);
    // extract the otp using regex e.g. the below regex extracts 4 digit otp from message
    const otpMessage = /(\d{6})/g.exec(message)[1];
    console.log('otpMessage', otpMessage);
    setAuto(true);
    setOTP(otpMessage);
  });
  return () => removeListener();
}, []);

字符串
我已经确保Play商店和手机上收到的消息之间的哈希ID匹配.然而,尽管选择“默认短信处理程序”在短信和通话记录权限,我的应用程序被拒绝.
在我的AndroidManifest文件中,我设置了必要的权限:

<!-- <uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" /> -->


我不确定在Play Console上选择短信和通话记录权限的正确选项。有人可以指导我进行适当的选择以解决此问题吗?
如果您能提供帮助,我们将不胜感激。谢谢!

jei2mxaa

jei2mxaa1#

您的应用程序不是默认的短信处理程序。默认的短信处理程序是为所有传入文本编写短信数据库的应用程序。基本上,它是手机短信应用程序需要的特殊权限。您不需要仅阅读一条消息。事实上,声称您的应用程序是恶意软件或开发人员不知道他们在做什么是一个巨大的红旗(在这种情况下,它是第二个)。

8aqjt8rx

8aqjt8rx2#

我有这个问题一样.而不是发送短信扔你的应用程序,意图默认短信应用程序与接收器及其内容.
用于选定收件人的带有空白文本的示例代码。
从'react-native'导入{Linking,Platform}

const url = (Platform.OS === 'android')
  ? 'sms:1-408-555-1212?body=yourMessage'
  : 'sms:1-408-555-1212'

Linking.canOpenURL(url).then(supported => {
  if (!supported) {
    console.log('Unsupported url: ' + url)
  } else {
    return Linking.openURL(url)
  }
}).catch(err => console.error('An error occurred', err))

字符串

相关问题