どのように“ハッピー新年”のSMSを送信する方法をネイティブのAndroid上で反応を使用して


どのように簡単に“ハッピー新年”SMSを送信するには、Android上でネイティブの反応を使用して.
アプリ全体ビルドのコードはhttps://github.com/Merlier/rn_example_send_smsで利用可能です

始める


要件
  • は、ネイティブ>= 0.60
  • に反応します
    最初に、新しい反応ネイティブプロジェクトを起動します.
    $ npx react-native init rn_example_send_sms
    
    モジュールをインストールします.
    $ npm install --save react-native-sms
    
    次に、Android/app/src/main/androidmanifestでパーミッションを追加します.XML :
      <uses-permission android:name="android.permission.READ_SMS" />
      <uses-permission android:name="android.permission.WRITE_SMS" />
      <uses-permission android:name="android.permission.SEND_SMS" />
    
    ユーザに問い合わせることによって、SMS許可にアクセスするために、反応するネイティブ許可を必要とします.
    それで、反応するネイティブパーミッションモジュールをインストールします.
    $ npm i --save react-native-permissions
    

    反応ネイティブSMS SMSを送信する


    SMSを送信するには、“SETSMS”をチェックし、SMSのアクセス許可を要求する関数を呼び出す“sendSMS”機能をコード化します.その後、“sendSMS”機能は、“AutoSend”機能を介してSMSを送信するために反応ネイティブ取得SMS Androidのモジュールを使用します.
    あなただけのアプリを変更する必要があります.このようなJS :
    /**
     * Sample React Native App
     * https://github.com/facebook/react-native
     *
     * @format
     * @flow strict-local
     */
    
    import React, {useState} from 'react';
    import {
      StyleSheet,
      SafeAreaView,
      View,
      Button,
      Text,
      TextInput,
    } from 'react-native';
    import {check, request, RESULTS, PERMISSIONS} from 'react-native-permissions';
    import SmsAndroid from 'react-native-get-sms-android';
    
    const App: () => React$Node = () => {
      const [phoneNumber, setPhoneNumber] = useState('');
      const [message, setMessage] = useState('Happy new year!');
    
      const getSMSPermission = async () => {
        try {
          const checkResult = await check(PERMISSIONS.ANDROID.SEND_SMS);
          switch (checkResult) {
            case RESULTS.DENIED:
              const requestResult = await request(PERMISSIONS.ANDROID.SEND_SMS);
              return Promise.resolve(requestResult);
            case RESULTS.GRANTED:
              return Promise.resolve(checkResult);
            default:
              return Promise.reject();
          }
        } catch (err) {
          // console.log(err);
        }
      };
    
      const sendSMS = async () => {
        try {
          await getSMSPermission();
          SmsAndroid.autoSend(
            phoneNumber,
            message,
            (fail) => {
              console.log('Failed with this error: ' + fail);
            },
            (success) => {
              console.log('SMS sent successfully');
            },
          );
        } catch (err) {
          // console.log(err)
        }
      };
    
      return (
        <SafeAreaView style={styles.container}>
          <View style={styles.form}>
            <Text style={styles.title}>Send SMS using react-native on Android</Text>
            <TextInput
              style={styles.textInput}
              placeholder={'Phone number'}
              onChangeText={setPhoneNumber}
              value={phoneNumber}
            />
            <TextInput
              style={styles.textInput}
              placeholder={'Message'}
              onChangeText={setMessage}
              value={message}
            />
            <Button onPress={sendSMS} title="Send SMS" />
          </View>
        </SafeAreaView>
      );
    };
    
    const styles = StyleSheet.create({
      container: {
        flex: 1,
        backgroundColor: '#eee',
      },
      form: {
        padding: 20,
      },
      title: {
        fontSize: 20,
        marginBottom: 20,
      },
      textInput: {
        backgroundColor: '#fff',
        marginBottom: 5,
      },
    });
    
    export default App;
    
    
    アプリケーションを実行します
    $ npx react-native run-android
    

    楽しい
    明けましておめでとう!
    :)