【问题标题】:Ionic 4 read SMS plugin for OTP Verification用于 OTP 验证的 Ionic 4 读取 SMS 插件
【发布时间】:2019-12-17 19:14:51
【问题描述】:

我正在开发 ionic4 应用程序,用于自动验证或每当我收到短信时,我的应用程序都必须读取该消息。为此,我使用了“Cordova 插件添加 Cordova-plugin-SMS”,但它不起作用。我声明了'declare var window: any;并声明 var SMS: any;'没有任何效果。它在 Android 中显示“java.lang.ClassNotFoundException: com.rjfun.cordova.sms.SMSPlugin”,在 Web 中显示“TypeError: Cannot read property 'listSMS' of undefined”。谁能帮我解决这个问题

【问题讨论】:

    标签: ionic-framework ionic4


    【解决方案1】:

    有一个插件可以解决您的问题。命名为cordova-plugin-sms-receive。 这将有助于在收到任何电话时阅读短信,您可以做任何您想做的事情。 https://www.npmjs.com/package/cordova-plugin-sms-receive

    【讨论】:

      【解决方案2】:

      plugin 允许从应用发送短信,而不是接收短信。

      要将数据从 SMS 获取到您的应用,您可以使用深度链接将其作为 args 传递。这将要求用户点击 SMS 中的链接。我不知道有一种方法可以将 SMS 数据自动馈送到您的应用程序,我认为这是不可能的,因为这会带来安全风险。

      自定义 URL 方案是最简单的方法(例如 mycoolapp://some-path?p1=data1&p2=data2

      App Links (Android > 6.0) 和Universal Links (iOS > 9.0) 功能更强大,但可能没有必要,也没有得到很好的支持。这真的取决于您的用例。

      Ionic 有一个community maintained plugin,我使用它并完成了这项工作,尽管这里和那里需要一个解决方法。 Branch.io 的plugin 也是一个选项,但我没用过。

      【讨论】:

      • 我们有没有 ionic4 插件可以接收短信
      【解决方案3】:

      非常好的问题...您需要为此使用cordova插件。以下是

      首先您需要安装 Android Permission Ionic Native Plugin。 首先运行这两个命令来安装Android Permission Plugin。

      ionic cordova plugin add cordova-plugin-android-permissions
      npm install @ionic-native/android-permissions
      

      将 android-permissions 添加到您应用的模块中。

      import { AndroidPermissions} from '@ionic-native/android-permissions';
      
      @NgModule({
      
      
        providers: [
      
          AndroidPermissions
      
        ]
      
      })
      export class AppModule { }
      

      查看页面权限

      import { AndroidPermissions } from '@ionic-native/android-permissions';
      
      
      export class HomePage {
      constructor(public androidPermissions: AndroidPermissions) { }
      
      
      
      ionViewWillEnter()
      {
      
      this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.READ_SMS).then(
        success => console.log('Permission granted'),
      err => this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.READ_SMS)
      );
      
      this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.READ_SMS]);
      }
      }
      

      现在允许读取短信权限后,您需要安装cordova-plugin-sms。运行此命令进行安装。

      ionic cordova plugin add cordova-sms-plugin
      
      npm install @ionic-native/sms
      

      阅读短信时在您的页面中 -

      在声明类之前将其放在顶部

      declare var SMS:any;
      

      放在课堂下面

      ionViewDidEnter()
          {
      
          this.platform.ready().then((readySource) => {
          if(SMS) SMS.startWatch(()=>{
                     console.log('watching started');
                  }, Error=>{
                 console.log('failed to start watching');
             });
      
            document.addEventListener('onSMSArrive', (e:any)=>{
                 var sms = e.data;
                 console.log(sms);
      
                 });
      
              });
          }
      

      【讨论】:

        【解决方案4】:

        您可以使用此 Ionic/Cordova 插件进行自动 OTP 验证,这不会要求用户提供 SMS 读取权限。

        插件:https://github.com/hanatharesh2712/ionic-native-sms-retriever-plugin-master

        演示应用:https://github.com/hanatharesh2712/sms-plugin-test

        【讨论】:

        • 这个可以和电容一起用吗?
        • @AdamMendoza 抱歉,不确定电容器,但是,如果您可以使用其他 Cordova 插件,那么您也可以使用它。
        猜你喜欢
        • 2018-03-14
        • 2019-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-22
        相关资源
        最近更新 更多