分叉这个android库并修改服务器端逻辑: https://github.com/ayltai/Android-Lib-reCAPTCHA
reCAPTCHA Android 库提供了一种在 Android 应用程序中将验证码显示为 ImageView 的简单方法,帮助您阻止机器人滥用它。该库包装了reCAPTCHA API。
repositories {
jcenter()
}
dependencies {
compile 'android.lib.recaptcha:reCAPTCHA:+'
}
Run Code Online (Sandbox Code Playgroud)
<android.lib.recaptcha.ReCaptcha />要显示验证码图像,您需要向布局 XML添加一个元素:
<android.lib.recaptcha.ReCaptcha
android:id="@+id/recaptcha"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="centerInside" />
Run Code Online (Sandbox Code Playgroud)
android:scaleType="centerInside"确保可以显示整个验证码图像非常重要。
或者,您可以在运行时创建一个实例android.lib.recaptcha.ReCaptcha:
ReCaptcha reCaptcha = new ReCaptcha(context);
Run Code Online (Sandbox Code Playgroud)
在包含的活动/片段/视图中android.lib.recaptcha.ReCaptcha,您需要显示验证码图像以供用户响应:
ReCaptcha reCaptcha = (ReCaptcha)findViewById(R.id.recaptcha);
reCaptcha.showChallengeAsync("your-public-key", onShowChallengeListener);
Run Code Online (Sandbox Code Playgroud)
showChallengeAsync异步下载并显示验证码图像。在 UI 线程中调用是安全的。如果此调用出现任何错误,则不会引发异常。所有错误都将被视为显示验证码图像失败。
onShowChallengeListener是 的一个实例ReCaptcha.OnShowChallengeListener,当尝试显示 CAPTCHA 完成时调用该实例。
该方法的同步版本是showChallenge。
要验证用户输入,请将输入字符串传递给ReCaptcha.verifyAnswerAsync(或ReCaptcha.verifyAnswer):
reCaptcha.verifyAnswerAsync("your-private-key", "user-input", onVerifyAnswerListener);
Run Code Online (Sandbox Code Playgroud)
verifyAnswerAsync异步将用户输入字符串提交到 reCAPTCHA 服务器进行验证。在 UI 线程中调用是安全的。如果此调用出现任何错误,则不会引发异常。所有错误将被视为验证失败。
onVerifyAnswerListener是 的一个实例ReCaptcha.OnVerifyAnswerListener,当尝试验证用户输入完成时调用该实例。
该方法的同步版本是verifyAnwser。
您可以强制小部件以特定语言呈现。请参阅此页。
reCaptcha.setLanguageCode("fr");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5023 次 |
| 最近记录: |