提问人:Sushanth 提问时间:11/17/2023 更新时间:11/18/2023 访问量:34
Google Play 商店中 React Native 应用程序中的 SMS 权限困难
Difficulty with SMS Permissions in React Native App on Google Play Store
问:
当我的 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 管理中心内为短信和通话记录权限选择的正确选项。有人可以指导我进行适当的选择来解决此问题吗?
您的帮助将不胜感激。谢谢!
答:
0赞
Gabe Sechan
11/17/2023
#1
你的应用不是默认的短信处理程序。默认短信处理程序是为所有传入文本写入短信数据库的应用。基本上,这是您手机的短信应用程序所需的特殊权限。您不需要仅仅阅读一条消息。事实上,声称这是一个巨大的危险信号,表明您的应用程序要么是恶意软件,要么是开发人员不知道他们在做什么(在这种情况下,这是第二个)。
0赞
Murtaza
11/18/2023
#2
我也有同样的问题。Intent 不会发送短信抛出您的应用程序,而是将默认短信应用程序与接收方及其内容放在一起。
包含空白文本的示例代码,用于所选收件人。
import {Linking, Platform} from 'react-native'
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))
评论