【发布时间】:2018-06-19 05:54:25
【问题描述】:
有没有办法在 webview 中自动检测 OTP? 有手机号。使用 OTP 进行验证,并且 OTP 将在应用 web 视图中检测到。
提前致谢
【问题讨论】:
标签: android webview detection one-time-password
有没有办法在 webview 中自动检测 OTP? 有手机号。使用 OTP 进行验证,并且 OTP 将在应用 web 视图中检测到。
提前致谢
【问题讨论】:
标签: android webview detection one-time-password
每当您通过短信获得 OTP 并由接收者通知时,然后在 webview 中,无论您想要在其中添加 OTP 的哪个输入文本,您都需要做这样的事情吗?
String otp = "OTP_FROM_YOUR_RECEIVER";
webview.loadUrl("javascript:document.getElementById('otp_input').value = '"+otp+"';");
以上代码只是示例,您需要根据自己的要求进行更改。
【讨论】:
这里是 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<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&&!inputs[i].disabled){
ary.push(inputs[i]);
}
}
}
return ary;
}
var array= getInputs();
array[0].value=</string>
【讨论】: