プラグイン

「Android用認証プラグイン」は、AndroidネイティブアプリでAPIを使用する際に必要な認証機能を提供するjar形式のファイルです。当プラグインを使用することによってAndroid端末ローカル上にあるhtmlファイルからAPIを使用することが可能になります。
※)有料版ユーザのみご利用いただけます
※)認証にはコンシューマ・キー、コンシューマ・シークレットが必要です。詳細は担当営業までお問い合わせ下さい
※)別途、プラグインをクラスパスに追加する必要があります。こちらから取得して下さい
※)動作確認済みのOSはAndroid OS 2.3 ~ 6.0です。
  上記以外のバージョンは動作未確認あるいは動作しない事が確認されております。

※)apiドキュメントは以下のリンクをクリックすると別ページで開きます

※)AndroidManifest.xmlにINTERNETとACCESS_NETWORK_STATEのPermissionsが必要です

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>



ソースコードと解説

APIを利用して地図を表示するには、 ItsmoNaviOauthClientクラスのinitSettingsメソッドで画面情報を設定した後、loadJsメソッドを実行します。

package sample.oauth;

import itsmonavi.api.oauth.client.Callback;
import itsmonavi.api.oauth.client.ErrorCode;
import itsmonavi.api.oauth.client.ItsmoNaviOauthClient;
import itsmonavi.api.oauth.client.ItsmoNaviException;
import itsmonavi.api.oauth.client.Env;
import android.os.Bundle;
import android.app.Activity;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.widget.Toast;

public class MainActivity extends Activity {

    private final int MP = ViewGroup.LayoutParams.MATCH_PARENT;
    /**
     * OAuth認証で使用するコンシューマ・キー
     */
    private static String CONSUMER_KEY = "*********************";
    /**
     * OAuth認証で使用するコンシューマ・シークレット
     */
    private static String CONSUMER_SECRET = "***************************";
    /**
     * 地図を表示するWebView
     */
    private WebView mWebView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mWebView = new WebView(this);
        // WebViewでのJavaScriptのalertを表示させるために設定する
        mWebView.setWebChromeClient(new WebChromeClient());
        setContentView(mWebView, new LayoutParams(MP, MP));

        // コンシューマ・キー、コンシューマ・シークレット、環境情報を元にItsmoNaviOauthClientのインスタンスを生成する
        ItsmoNaviOauthClient oauthClient = 
                new ItsmoNaviOauthClient(
                        CONSUMER_KEY, 
                        CONSUMER_SECRET, 
                        Env.PRODUCTION // 本番環境を指定
                        );
        // 画面情報を設定する
        oauthClient.initSettings(
            mWebView, 
            "index.html", // assetsディレクトリに配置したhtmlファイル
            // ローダのパラメータ。エラー時、JavaScriptのアラート表示させるためalert=1を指定
            "?ver=2.0&alert=1&enc=UTF8&api=zdcmap.js,control.js,shape.js,search.js"
            );
        // apiをロードする
        oauthClient.loadJs(this, new Callback() {
            @Override
            public void postExecute() {
                // apiロード成功時の処理
                Toast.makeText(MainActivity.this, "loaded!!", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void afterError(ItsmoNaviException e) {
                ErrorCode errorCode = e.getErrorCode();
                // apiロード失敗時はエラーコードを判別し、エラーメッセージを表示する
                if (errorCode == ErrorCode.CONNECTION_FAILED) {
                    Toast.makeText(MainActivity.this, "通信エラーが発生しました。", Toast.LENGTH_SHORT).show();
                } else if (errorCode == ErrorCode.FILE_READ_ERROR) {
                    Toast.makeText(MainActivity.this, "ファイル読込み時にエラーが発生しました。", Toast.LENGTH_SHORT).show();
                } else if (errorCode == ErrorCode.NOT_AUTHORIZED) {
                    Toast.makeText(MainActivity.this, "認証エラーが発生しました。", Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
}