Alli SDKにはAndroid 4.4(APIレベル19)以上が必要です。
1. Alliダッシュボードにログインして「設定」メニューに移動します。下にスクロールし、Android SDKを確認し、[ダウンロードボタン]を押して、SDKをダウンロードします。
2. Android Studioで、[ファイル] > [新規]> [新しいモジュール]に移動し、Alli SDKをプロジェクトにインポートします。
3. 「ファイル」 >「プロジェクト構造」> 「依存関係」でファイルの依存関係として「allisdk」を追加します。
アプリモジュールの build.gradle ファイルに移動し、Alli SDKを依存関係として追加します。
dependencies {
implementation project(":allisdk")
}
以下を AndroidManifest.xmlに追加します。
Androidプラグインが3.0.0以上であることを確認し、対応する build.gradle ファイルで次のように設定します。
android {
...
// Configure only for each module that uses Java 8
// language features (either in its source code or
// through dependencies).
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
import ai.allganize.allisdk.Alli;
import ai.allganize.allisdk.AlliErrorCode;
import ai.allganize.allisdk.AlliEventHandler;
protected void onCreate(Bundle savedInstanceState) {
...
// new Alli(String apiKey, WebView webView, AlliEventHandler eventHandler, boolean showHeader, boolean showFooter, boolean showBackButton)
// showHeader - optional, default: true, If you want to remove the header, turn off this option.
// showFooter - optional, default: true, If you want to remove the footer, turn off this option.
// showBackButton - optional, default: true, If you want to remove the back button on the header, turn off this option.
alli = new Alli("YOUR_API_KEY", webView, this, true, true, false);
alli.initialize();
...
}
アップデート June 2021
AndroidSDKにてJavascripSDKで使用可能なすべてのパラメーターを使用できます。
HashMap<String, Object> タイプを使用して、JavascriptSDKの初期化に使用されるパラメーターをAlliの引数に送信します。
dependencies {
implementation project(":allisdk")
}alli = new Alli(this, apikey, webView, this,
new HashMap(){{
put("header", true);
put("footer", false);
put("backButton", true);
put("styleOptions", new HashMap(){{
put("conversationContainer", new HashMap(){{
put("right", 50);
put("left": 50);
put("bottom": 50);
}}
}}
}});
SDKキーはAlliダッシュボード > [設定]を選択し、プロジェクト設定ページに記載されています。
Add this in the same Activity class for permissions:
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults)
{
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
alli.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
alli.onActivityResult(this, requestCode, resultCode, data);
}
ユーザーとAlliが会話することができるダイアログを作成するには、下記を呼び出します。
alli.event();
ユーザIDとPlacementを特定したい場合は以下のように呼び出します。
// user id: "USER-123"
// placement: "LANDING"
alli.event("USER-123", "LANDING", context);
サービスにログインして、ユーザが特定されている場合、上記のようにAlliに情報を渡すことができます。 あるいはログインしていないユーザーのために、一時的なIDを生成することもできます。
Placement情報は、ユーザーにスキルを表示したいアプリ内の場所を決定するために使用されます。Placementを作成した後、Alliダッシュボードで必要なスキルにPlacementを指定することができます。この機能の利点は、プレースメントに表示するスキルをいつでも決定できることです。
Alliダイアログは、親ビューコントローラで実装する必要があります。このとき、親ビューコントローラを委任属性に割り当てる必要があります。この呼び出しに渡されたViewControllerが最上位のビューであり、他のビューに隠れないようにしてください。 そして親ビューは、最小の高さと幅が必要です。
アップデート June 2021
event 関数を使用することで、使用可能なすべてのJavascriptパラメーターを利用することも可能です。
alli.event(new HashMap(){{
put("user", new HashMap(){{
put("id", userId.getText().toString());
}});
put("placement", placement.getText().toString());
put("variables", new HashMap(){{
put("test", "test value");
put("AGE", 31);
put("BIRTHDAY", "2021-06-30");
put("boolean", true);
}});
}});
※上記のuserIdの形式にご注意ください。
次のデリゲートメソッドは、チャットの会話ステータスに関するフィードバックを提供します。
public protocol AlliEventHandler {
// Called when initialized successfully.
// You may receive NOT_INITIALIZE_YET error if
// called before this event.
void onInitialized(WebView view);
// Called when chat started successfully.
void onConversationStarted(WebView view, String userId, String placement, Object context);
// Called when conversation did not start
// even when Alli.event was called.
void onConversationNotStarted(_ view: WKWebView!, userId: String, placement: String, context: Any?)
// Called when user has closed the chat
// window or Alli.close() is called.
void onConversationClosed(WebView view, String userId, String placement, Objective context)
void onError(WebView view, AlliErrorCode errorCode, String userId, String placement, Object context)
}
@Override
public boolean handleUrlLoading(String url) {
Uri gmmIntentUri = Uri.parse("geo:37.4919653,127.0330243");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);
return true;
allprojects {
repositories {
maven { url "https://jitpack.io" }
}
}
Appのbuild.gradleに次のように入力します。
dependencies {
implementation 'com.github.delight-im:Android-AdvancedWebView:v3.2.1'
}
Step 2. ebViewの書き換え
「webview”を” im.delight.android.webview.AdvancedWebView”に置き換えます。
コードの基本的なWebViewは以下のように宣言されますが、
WebView myWebView = new WebView(activityContext);
下記のようにAdvancedWebViewに置き換えします。
WebView myWebView = new AdvancedWebView(activityContext);
Step 3. Build
Gradle同期後、ライブラリをインストールすることでビルドできます。
ISO/IEC 27001
certified