Anda dapat menggunakan komponen WebView dalam aplikasi untuk mengintegrasikan Alibaba Cloud Captcha 2.0 ke dalam aplikasi mobile HTML5. Metode ini memanfaatkan teknologi pengembangan aplikasi hibrida yang matang guna menyediakan verifikasi manusia-mesin bagi layanan aplikasi Anda. Topik ini menjelaskan cara mengintegrasikan Captcha 2.0 dalam aplikasi Android.
Informasi latar belakang
Captcha 2.0 untuk aplikasi mobile HTML5 menawarkan manfaat seperti iterasi cepat dan kompatibilitas kuat. Dengan mengintegrasikan layanan Captcha 2.0, Anda dapat menghindari masalah kompatibilitas yang disebabkan oleh dependensi dan referensi pada komponen aplikasi asli. Iterasi cepat dari HTML5 Captcha 2.0 juga membantu aplikasi merespons serangan canggih dengan lebih baik.
Ikhtisar integrasi
Jika layanan Anda menggunakan arsitektur V2, lihat Integrasi dengan arsitektur V2 di Android.
Mengintegrasikan Captcha 2.0 untuk aplikasi HTML5 ke dalam aplikasi Android melibatkan langkah-langkah berikut:
Klien Layanan HTML5: Integrasikan Captcha 2.0 ke dalam klien layanan HTML5 dan mulai verifikasi.
Server untuk Layanan HTML5: Integrasikan SDK Captcha 2.0 ke dalam server dan panggil operasi API
VerifyIntelligentCaptchauntuk memulai verifikasi tanda tangan untuk layanan Anda.Klien Aplikasi Android: Gunakan komponen WebView untuk mengaktifkan dan menerapkan halaman layanan yang memerlukan integrasi Captcha 2.0 di aplikasi Anda.
Prasyarat
Layanan Captcha 2.0 telah diaktifkan.
Sebuah skenario verifikasi dibuat di mana Integration Method diatur ke Webview+H5 (for Apps And WeChat Mini Programs).
Android 7.0 atau lebih baru digunakan.
Prosedur
Langkah 1: Integrasikan Alibaba Cloud Captcha 2.0 ke dalam klien layanan HTML5
Dalam kode klien layanan HTML5 Anda, integrasikan kode sisi klien yang disediakan oleh Captcha 2.0. Untuk informasi lebih lanjut, lihat Integrasi dengan arsitektur V3 untuk klien web dan HTML5.
CatatanJika layanan Anda menggunakan arsitektur V2, lihat Integrasi dengan arsitektur V2 untuk klien web dan HTML5.
Dalam fungsi callback sukses, tambahkan fungsi JavaScript untuk mengembalikan parameter verifikasi tanda tangan ke antarmuka Java kustom
testJsInterface, seperti yang dijelaskan dalam Langkah 5 dan Langkah 6. Setelah antarmuka Java mendapatkan parameter verifikasi tanda tangan, aplikasi Android dapat mengirim permintaan layanan dan verifikasi tanda tangan serta memproses hasil verifikasi.// fungsi callback sukses function success(captchaVerifyParam) { // Parameter input adalah captchaVerifyParam untuk verifikasi tanda tangan. // Kembalikan parameter verifikasi tanda tangan ke antarmuka Java kustom. window.testInterface && window.testInterface.getCaptchaVerifyParam(captchaVerifyParam); }
Data yang dikembalikan
Selama verifikasi perilaku untuk klien arsitektur V3 yang terhubung ke Captcha 2.0, server Captcha memverifikasi jawaban dan menentukan apakah permintaan berasal dari mesin. Server kemudian mengembalikan kode Captcha dan parameter lainnya ke klien Anda. Anda dapat melihat data yang dikembalikan menggunakan fitur Jaringan di browser Anda. Untuk informasi lebih lanjut, lihat Data yang Dikembalikan untuk Klien Arsitektur V3.

Langkah 2: Integrasikan Alibaba Cloud Captcha 2.0 ke dalam server untuk halaman HTML5
Di server untuk halaman layanan HTML5, integrasikan kit pengembangan perangkat lunak (SDK) sisi server yang disediakan oleh Captcha 2.0. Kemudian, panggil operasi API VerifyIntelligentCaptcha untuk memulai verifikasi tanda tangan untuk layanan Anda. Untuk informasi lebih lanjut, lihat Integrasi Sisi Server.
Langkah 3: Aktifkan dan terapkan halaman layanan pada klien aplikasi Android
Dalam file
Activity.javaproyek aplikasi Android Anda, impor pustaka dependensi untuk komponen WebView.import android.webkit.WebView; import android.webkit.WebSettings; import android.webkit.WebViewClient; import android.webkit.WebChromeClient; // Atau // import android.webkit.*;Dalam file konfigurasi
AndroidManifest.xml, atur izin untuk memuat halaman web.CatatanJika sumber daya HTTP lain dipanggil, Anda juga harus menambahkan konfigurasi yang sesuai.
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <application ... android:usesCleartextTraffic="true" ... >Dalam file tata letak
activity_main.xml, tambahkan komponen WebView.<WebView android:id="@+id/webview" android:layout_height="match_parent" android:layout_width="match_parent" />Dalam file
MainActivity.java, muat halaman layanan HTML5.public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { // Tata letak halaman WebView webview = findViewById(R.id.webview); // Pengaturan WebView WebSettings webSettings = webview.getSettings(); // Opsional. Aktifkan debugging Chrome. WebView.setWebContentsDebuggingEnabled(true); // Jadikan layar responsif. webSettings.setUseWideViewPort(true); webSettings.setLoadWithOverviewMode(true); // Nonaktifkan caching untuk memastikan versi terbaru Captcha 2.0 dapat segera diambil untuk melawan serangan. webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE); // Izinkan komponen WebView memuat JavaScript. webSettings.setJavaScriptEnabled(true); webSettings.setDomStorageEnabled(true); // Gunakan komponen WebView untuk memuat halaman alih-alih browser default. webview.setWebViewClient(new WebViewClient(){ @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }); // Muat halaman layanan. webview.loadUrl("http://x.x.x.x/demo/"); } }Dalam file
MainActivity.java, tambahkan antarmuka Java kustomtestJsInterfacedan definisikan metodegetCaptchaVerifyParamuntuk mendapatkan parameter verifikasi tanda tangan Captcha.import android.webkit.JavascriptInterface; public class testJsInterface { @JavascriptInterface public void getCaptchaVerifyParam(String captchaVerifyParam) { // Setelah Anda mendapatkan parameter verifikasi tanda tangan, Anda dapat mengirim permintaan layanan dan verifikasi tanda tangan serta memproses hasil verifikasi. System.out.println(captchaVerifyParam); } }Dalam metode
initView()dariMainActivity.java, ikat antarmuka Java kustom ke fungsi JavaScript.// Bangun jembatan untuk JavaScript memanggil antarmuka Java. webview.addJavascriptInterface(new testJsInterface(), "testInterface");
Setelah Anda menyelesaikan konfigurasi ini, aplikasi Android Anda terintegrasi dengan Captcha 2.0. Anda dapat menggunakan Captcha di aplikasi Android Anda untuk menguji verifikasi. Jika Captcha bekerja seperti yang diharapkan, integrasi berhasil.