すべてのプロダクト
Search
ドキュメントセンター

Captcha:Android で V3 アーキテクチャと統合する

最終更新日:Oct 24, 2025

アプリで WebView コンポーネントを使用して、HTML5 モバイルアプリケーション用の Alibaba Cloud Captcha 2.0 と統合できます。このメソッドは、成熟したハイブリッドアプリ開発テクノロジーを使用して、アプリサービスに人間と機械の検証を提供します。このトピックでは、Android アプリで Captcha 2.0 と統合する方法について説明します。

背景情報

HTML5 モバイルアプリケーション用の Captcha 2.0 は、迅速な反復や強力な互換性などの利点を提供します。この方法で Captcha 2.0 サービスを統合することにより、ネイティブアプリコンポーネントの依存関係やリファレンスによって引き起こされる互換性の問題を回避できます。HTML5 Captcha 2.0 の迅速な反復は、アプリが高度な攻撃により適切に対応するのにも役立ちます。

統合の概要

説明

サービスで V2 アーキテクチャを使用している場合は、「Android で V2 アーキテクチャと統合する」をご参照ください。

HTML5 アプリケーション用の Captcha 2.0 を Android アプリに統合するには、次のステップが含まれます:

  1. HTML5 サービス クライアント: Captcha 2.0 を HTML5 サービス クライアントに統合し、検証を開始します。

  2. HTML5 サービスのサーバー: Captcha 2.0 SDK をサーバーに統合し、VerifyIntelligentCaptcha API 操作を呼び出して、サービスの署名検証を開始します。

  3. Android アプリ クライアント: WebView コンポーネントを使用して、アプリで Captcha 2.0 統合が必要なサービスページを有効にしてデプロイします。

前提条件

  • Captcha 2.0 サービスが有効化されていること

  • Integration Method[Webview+H5 (アプリおよび WeChat ミニプログラム用)] に設定されている 検証シナリオ が作成されていること

  • Android 7.0 以降が使用されていること

手順

ステップ 1: Alibaba Cloud Captcha 2.0 を HTML5 サービス クライアントに統合する

  1. HTML5 サービス クライアントのコードに、Captcha 2.0 が提供するクライアント側の統合コードを統合します。詳細については、「Web および HTML5 クライアント向けの V3 アーキテクチャとの統合」をご参照ください。

    説明

    サービスで V2 アーキテクチャを使用している場合は、「Web および HTML5 クライアント向けの V2 アーキテクチャとの統合」をご参照ください。

  2. 成功コールバック関数で、「ステップ 5」および「ステップ 6」で説明されているように、署名検証パラメーターをカスタム Java インターフェイス testJsInterface に返す JavaScript 関数を追加します。Java インターフェイスが署名検証パラメーターを取得した後、Android アプリはサービスリクエストと署名検証リクエストを送信し、検証結果を処理できます。

    // 成功コールバック関数
    function success(captchaVerifyParam) {
      // 入力パラメーターは署名検証用の captchaVerifyParam です。
      // 署名検証パラメーターをカスタム Java インターフェイスに返します。
      window.testInterface && window.testInterface.getCaptchaVerifyParam(captchaVerifyParam);
    }
    

返されるデータ

Captcha 2.0 に接続された V3 アーキテクチャのクライアントの動作検証中に、Captcha サーバーは回答を検証し、リクエストがマシンからのものかどうかを判断します。その後、サーバーは Captcha コードとその他のパラメーターをクライアントに返します。返されたデータは、ブラウザのネットワーク機能を使用して表示できます。詳細については、「V3 アーキテクチャクライアントに対して返されるデータ」をご参照ください。

lQLPJxFSi2GYDIHNBHTNCpawwjNH3sY_CI4IOehh6YNsAQ_2710_1140

ステップ 2: Alibaba Cloud Captcha 2.0 を HTML5 ページのサーバーに統合する

HTML5 サービスページのサーバーで、Captcha 2.0 が提供するサーバーサイドソフトウェア開発キット (SDK) を統合します。次に、VerifyIntelligentCaptcha API 操作を呼び出して、サービスの署名検証を開始します。詳細については、「サーバーサイド統合」をご参照ください。

ステップ 3: Android アプリ クライアントでサービスページを有効にしてデプロイする

  1. Android アプリプロジェクトの Activity.java ファイルで、WebView コンポーネントの依存関係ライブラリをインポートします。

    import android.webkit.WebView;
    import android.webkit.WebSettings;
    import android.webkit.WebViewClient;
    import android.webkit.WebChromeClient;
    // または
    // import android.webkit.*;
  2. AndroidManifest.xml 構成ファイルで、Web ページの読み込み権限を設定します。

    説明

    他の HTTP リソースが呼び出される場合は、対応する構成も追加する必要があります。

    <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"
      ...
      >
  3. activity_main.xml レイアウトファイルに、WebView コンポーネントを追加します。

    <WebView
      android:id="@+id/webview"
      android:layout_height="match_parent"
      android:layout_width="match_parent"
    />
  4. MainActivity.java ファイルで、HTML5 サービスページを読み込みます。

    public class MainActivity extends AppCompatActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            initView();
        }
        private void initView() {
            // ページレイアウト
            WebView webview = findViewById(R.id.webview);
            // WebView の設定
            WebSettings webSettings = webview.getSettings();
            // オプション。Chrome デバッグを有効にします。
            WebView.setWebContentsDebuggingEnabled(true);
            // 画面をレスポンシブにします。
            webSettings.setUseWideViewPort(true);
            webSettings.setLoadWithOverviewMode(true);
            // キャッシュを無効にして、最新バージョンの Captcha 2.0 を迅速に取得して攻撃から防御できるようにします。
            webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
            // WebView コンポーネントが JavaScript を読み込めるようにします。
            webSettings.setJavaScriptEnabled(true);
            webSettings.setDomStorageEnabled(true);
            
            // デフォルトのブラウザの代わりに WebView コンポーネントを使用してページを読み込みます。
            webview.setWebViewClient(new WebViewClient(){
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, String url) { 
                    view.loadUrl(url);
                    return true;
                }
            });
            // サービスページを読み込みます。
            webview.loadUrl("http://x.x.x.x/demo/");
        }
    }
  5. MainActivity.java ファイルで、カスタム Java インターフェイス testJsInterface を追加し、getCaptchaVerifyParam メソッドを定義して Captcha 署名検証パラメーターを取得します。

    import android.webkit.JavascriptInterface;
    
    public class testJsInterface {
        @JavascriptInterface
        public void getCaptchaVerifyParam(String captchaVerifyParam) {
            // 署名検証パラメーターを取得した後、サービスリクエストと署名検証リクエストを送信し、検証結果を処理できます。
            System.out.println(captchaVerifyParam);
        }
    }
  6. initView()MainActivity.java メソッドで、カスタム Java インターフェイスを JavaScript 関数にバインドします。

    // JavaScript が Java インターフェイスを呼び出すためのブリッジを構築します。
    webview.addJavascriptInterface(new testJsInterface(), "testInterface");

これらの構成を完了すると、Android アプリは Captcha 2.0 と統合されます。Android アプリで Captcha を使用して検証をテストできます。Captcha が期待どおりに機能する場合、統合は成功です。

Android V3 アーキテクチャのデモをダウンロードする

Android アプリ統合のデモ