【问题标题】:OTP detection in an app WebView应用程序 WebView 中的 OTP 检测
【发布时间】:2018-06-19 05:54:25
【问题描述】:

有没有办法在 webview 中自动检测 OTP? 有手机号。使用 OTP 进行验证,并且 OTP 将在应用 web 视图中检测到。

提前致谢

【问题讨论】:

    标签: android webview detection one-time-password


    【解决方案1】:

    每当您通过短信获得 OTP 并由接收者通知时,然后在 webview 中,无论您想要在其中添加 OTP 的哪个输入文本,您都需要做这样的事情吗?

    String otp = "OTP_FROM_YOUR_RECEIVER";
    webview.loadUrl("javascript:document.getElementById('otp_input').value = '"+otp+"';"); 
    

    以上代码只是示例,您需要根据自己的要求进行更改。

    【讨论】:

      【解决方案2】:

      这里是 Kotlin 中的代码:

      if (Build.VERSION.SDK_INT >= 19) {
                  mWebView!!.evaluateJavascript(getString(R.string.fill_otp) + "\"$extractedOTP\";") { Log.e(TAG, it) }
              } else {
                  mWebView!!.loadUrl(getString(R.string.fill_otp) + "\"$extractedOTP\";")
              }
      

      将“fill_otp”放入字符串文件中:

      <string name="fill_otp">javascript: function getInputs() {
          var ary = [];
          var inputs = document.getElementsByTagName(\"input\");
      
          for (var i=0; i&lt;inputs.length; i++)
              {
                  if (inputs[i].type.toLowerCase() == \"password\"||
                  inputs[i].type.toLowerCase() == \"tel\"||
                  inputs[i].type.toLowerCase() == \"number\"||
                  inputs[i].type.toLowerCase() == \"text\"){
      
                      if(!inputs[i].hidden&amp;&amp;!inputs[i].disabled){
                          ary.push(inputs[i]);
                      }
                  }
              }
              return ary;
          }
          var array= getInputs();
          array[0].value=</string>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-05-18
        • 2011-07-13
        • 2017-09-22
        • 2022-11-12
        • 2016-06-20
        • 2011-05-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多