在应用程序内反应本地发送短信

时间:2018-06-27 18:22:47

标签: android ios react-native sms

我想向多个号码发送短信而不打开默认消息收发应用程序。 我尝试使用react-native-sms-x,但是它没有得到维护,我的项目只是停留在编译过程中。 我还使用了react-native-sms,但它打开了默认的Messaging App,该应用程序填充了一个用户号码和消息正文,还必须单击它的发送按钮。

4 个答案:

答案 0 :(得分:0)

我建议使用此方法发送短信:https://github.com/anarchicknight/react-native-communications

答案 1 :(得分:0)

从现在开始,仅在Android平台上,我使用react-native-sms-android 这是我的向多个用户发送短信的代码:

import Asms from "react-native-sms-android";
type Props = {};
export default class App extends Component<Props> {
  constructor(Props) {
        super(Props);
        this.state = { FileNumbers: ['687867867867','8575774433'], Message: 
          "gjjgjgj" };
         }

  sendingSms = (Receivers, Messagex) => {
           try {
                Receivers.map(
                async Numbers =>
                  await Asms.sms(Numbers, Messagex, "sendDirect", (err,message) 
                    => {
                    if (err) {
                      console.log(err);
                    } else {
                      console.log(message);
                    }
                  })
              );
            } catch (e) {
              alert("" + e);
            }
          };

      render() {
        return (
          <View style={styles.container}>
            <TextInput
              style={{
                height: 40,
                borderColor: "gray",
                borderWidth: 1,
                width: "90%"
              }}
              onChangeText={Message => this.setState({ Message })}
              value={this.state.Message}
            />
            <Button
              title="SEND"
              onPress={() =>
                this.sendingSms(this.state.FileNumbers, this.state.Message)
              }
            />

          </View>
        );
      }
    }

答案 2 :(得分:0)

import { Linking,Platform  } from "react-native";

    const url = (Platform.OS === 'android')
    ? 'sms:919999999999?body=your message'
    : 'sms:919999999999'
    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))

答案 3 :(得分:0)

在React应用程序中进行了大量研究和试验之后... 我发现this库可以正常工作,并且达到了在不进入默认消息环境的情况下发送消息的目标。

var phoneNumbers = {
        "addressList": ["+911212121212", "+911212121212"]
      };
    var message = "This is automated test message"
    SmsAndroid.autoSend(
        phoneNumbers,
        message,
        (fail) => {
            console.log('Failed with this error: ' + fail);
        },
        (success) => {
            console.log('SMS sent successfully');
        },
    );

我希望它能对您有所帮助。不要忘记投票