コンソールにイメージを登録した後、ユーザーに告知を表示できます。
イメージ告知を画面に表示します。
API
+ (void)Gamebase.ImageNotice.showImageNotices(@NonNull Activity activity,
@Nullable GamebaseCallback onCloseCallback);
+ (void)Gamebase.ImageNotice.showImageNotices(@NonNull Activity activity,
@Nullable ImageNoticeConfiguration configuration,
@Nullable GamebaseCallback onCloseCallback,
@Nullable GamebaseDataCallback<String> onEvent);
ErrorCode
Error | Error Code | Description |
---|---|---|
NOT_INITIALIZED | 1 | Gamebase.initializeが呼び出されませんでした。 |
UI_IMAGE_NOTICE_TIMEOUT | 6901 | イメージ告知ポップアップウィンドウの表示中にタイムアウトが発生してすべてのポップアップを強制終了します。 |
UI_IMAGE_NOTICE_NOT_SUPPORTED_OS | 6902 | ローリングタイプの場合、 API 19以下の端末では画像イメージ告知をサポートしません。 |
SERVER_INVALID_RESPONSE | 8003 | サーバーから無効なレスポンスが返されました。 |
WEBVIEW_HTTP_ERROR | 7003 | ローリングタイプ画像告知Webビューを開く最中にHTTPエラーが発生しました。 |
Example
Gamebase.ImageNotice.showImageNotices(getActivity(), null,
new GamebaseCallback(){
@Override
public void onCallback(GamebaseException exception) {
// Called when the entire imageNotice is closed.
...
}
},
new GamebaseDataCallback<String>() {
@Override
public void onCallback(String payload, GamebaseException exception) {
// Called when custom event occurred.
...
}
});
ユーザー設定イメージ告知を画面に表示します。 ImageNoticeConfigurationでユーザー設定イメージ告知を作成できます。
Example
ImageNoticeConfiguration configuration = ImageNoticeConfiguration.newBuilder()
.setBackgroundColor("#FFFF0000") // Red
.setTimeout(10000L) // 10000ms == 10s
.enableAutoCloseByCustomScheme(false)
.build();
Gamebase.ImageNotice.showImageNotices(getActivity(), configuration, null, null);
API | Mandatory(M) / Optional(O) | Description |
---|---|---|
newBuilder() | M | ImageNoticeConfiguration.BuilderオブジェクトはnewBuilder()関数で作成できます。 |
build() | M | 設定を終えたBuilderをConfigurationオブジェクトに変換します。 |
setBackgroundColor(int backgroundColor) setBackgroundColor(String backgroundColor) |
O | イメージ告知の背景色。 Stringはandroid.graphics.Color.parseColor(String) APIで変換した値を使用します。 default : #80000000 |
setTimeout(long timeoutMs) | O | イメージ告知の最大ローディング時間(単位:millisecond) default : 5000L (5s) |
enableAutoCloseByCustomScheme(boolean enable) | O | カスタムスキームイベントが発生した時、メージ告知を強制終了するかどうかを決定します。 default : true |
closeImageNotices APIを呼び出して現在表示中のイメージ告知を全て終了できます。
API
+ (void)Gamebase.ImageNotice.closeImageNotices(@NonNull Activity activity);
Gamebaseコンソールに設定した約款を表示します。
showTermsView APIは、Webビューで約款ウィンドウを表示します。 GameのUIに合った約款ウィンドウを直接作成したい場合は、queryTerms APIを呼び出して、 Gamebaseコンソールに設定した約款項目を呼び出すことができます。 ユーザーが約款に同意した場合、項目別の同意有無をupdateTerms APIを介してGamebaseサーバーへ送信してください。
約款ウィンドウを画面に表示します。 ユーザーが約款に同意した場合、同意の有無をサーバーに登録します。 約款に同意した場合、showTermsView APIを再度呼び出しても約款ウィンドウが表示されず、すぐに成功コールバックがリターンされます。 ただし、Gamebaseコンソールで「約款の再同意」項目を必要に変更した場合は、ユーザーが再度約款に同意するまでは約款ウィンドウが表示されます。
API
+ (void)Gamebase.Terms.showTermsView(@NonNull Activity activity,
@Nullable GamebaseDataCallback<GamebaseDataContainer> callback);
+ (void)Gamebase.Terms.showTermsView(@NonNull Activity activity,
@Nullable GamebaseTermsConfiguration configuration,
@Nullable GamebaseDataCallback<GamebaseDataContainer> callback);
GamebaseTermsConfiguration
API | Mandatory(M) / Optional(O) | Description |
---|---|---|
newBuilder() | M | GamebaseTermsConfiguration.BuilderオブジェクトはnewBuilder()関数で作成できます。 |
build() | M | 設定を終えたBuilderをConfigurationオブジェクトに変換します。 |
setForceShow(boolean forceShow) | O | 約款に同意した場合、showTermsView APIを再度呼び出しても約款ウィンドウが表示されませんが、これを無視して強制的に約款ウィンドウを表示します。 default : false |
enableFixedFontSize(boolean enable) | O | システム文字サイズを無視し、固定されたサイズで約款を表示します。 default : false |
GamebaseShowTermsViewResult
Field | Type | Nullable / NonNull | Description |
---|---|---|---|
isTermsUIOpened | boolean | NonNull | true:約款ウィンドウが表示され、ユーザーが同意して約款ウィンドウが終了しました。 false:すでに約款に同意していて約款ウィンドウが表示されずに約款ウィンドウが終了しました。 |
pushConfiguration | PushConfiguration | Nullable | isTermsUIOpenedがtrueで、約款にプッシュ受信同意有無を追加した場合、pushConfigurationは常に有効なオブジェクトを持ちます。 そうでない場合はnullです。 pushConfigurationが有効なとき、pushConfiguration.pushEnabled値は常にtrueです。 |
ErrorCode
Error | Error Code | Description |
---|---|---|
NOT_INITIALIZED | 1 | Gamebaseが初期化されていません。 |
LAUNCHING_SERVER_ERROR | 2001 | ローンチサーバーからダウンロードした項目に約款関連内容がない場合に発生するエラーです。 正常な状況ではないため、Gamebase担当者にお問い合わせください。 |
UI_TERMS_ALREADY_IN_PROGRESS_ERROR | 6924 | 以前に呼び出されたTerms APIがまだ完了していません。 しばらくしてから再度試行してください。 |
UI_TERMS_ANDROID_DUPLICATED_VIEW | 6925 | 約款Webビューが終了していないのに再び呼び出されました。 |
WEBVIEW_TIMEOUT | 7002 | 約款Webビューの表示中にタイムアウトが発生しました。 |
WEBVIEW_HTTP_ERROR | 7003 | 約款Webビューのオープン中にHTTPエラーが発生しました。 |
Example
static PushConfiguration savedPushConfiguration = null;
final GamebaseTermsConfiguration configuration = GamebaseTermsConfiguration.newBuilder()
.setForceShow(true)
.build();
Gamebase.Terms.showTermsView(activity, configuration, (container, exception) -> {
if (Gamebase.isSuccess(exception)) {
// Save the PushConfiguration and use it for Gamebase.Push.registerPush()
// after Gamebase.login().
GamebaseShowTermsViewResult termsViewResult = GamebaseShowTermsViewResult.from(container);
if (termsViewResult != null) {
savedPushConfiguration = termsViewResult.pushConfiguration;
}
} else {
new Thread(() -> {
// Wait for a while and try again.
try { Thread.sleep(2000); }
catch (Exception ignored) {}
showTermsView(activity, callback);
}).start();
}
});
public void afterLogin(Activity activity) {
// Call registerPush with saved PushConfiguration.
if (savedPushConfiguration != null) {
Gamebase.Push.registerPush(activity, savedPushConfiguration, exception -> {...});
}
}
Gamebaseは単純な形式のWebビューで約款を表示します。 ゲームUIに合った約款を直接作成したい場合は、queryTerms APIを呼び出してGamebaseコンソールに設定した約款情報をダウンロードして活用できます。
ログイン後に呼び出す場合は、ゲームユーザーが約款に同意したかどうかも一緒に確認できます。
[注意]
- GamebaseTermsContentDetail.getRequired()がtrueの必須項目は、Gamebaseサーバーに保存されないため、agreed値は常にfalseが返されます。
- 必須項目は、常にtrueで保存されるしかないので、保存する意味がないためです。
- プッシュ受信同意有無もGamebaseサーバーに保存されないため、agreed値は常にfalseが返されます。
- プッシュ受信同意有無は、Gamebase.Push.queryTokenInfo APIを介して照会してください。
- コンソールで「基本約款設定」をしない場合、約款言語と異なる国コードで設定された端末からqueryTerms APIを呼び出した場合、UI_TERMS_NOT_EXIST_FOR_DEVICE_COUNTRY(6922)エラーが発生します。
- コンソールで「基本約款設定」を行ったり、UI_TERMS_NOT_EXIST_FOR_DEVICE_COUNTRY(6922)エラーが発生した時は、約款を表示しないように処理してください。
API
+ (void)Gamebase.Terms.queryTerms(@NonNull Activity activity,
@NonNull GamebaseDataCallback<GamebaseQueryTermsResult> callback);
ErrorCode
Error | Error Code | Description |
---|---|---|
NOT_INITIALIZED | 1 | Gamebaseが初期化されていません。 |
UI_TERMS_NOT_EXIST_IN_CONSOLE | 6921 | 約款情報がコンソールに登録されていません。 |
UI_TERMS_NOT_EXIST_FOR_DEVICE_COUNTRY | 6922 | 端末国コードに合った約款情報がコンソールに登録されていません。 |
Example
Gamebase.Terms.queryTerms(activity, new GamebaseDataCallback<GamebaseQueryTermsResult>() {
@Override
public void onCallback(GamebaseQueryTermsResult result, GamebaseException exception) {
if (Gamebase.isSuccess(exception)) {
// Succeeded.
final int termsSeq = result.getTermsSeq();
final String termsVersion = result.getTermsVersion();
final String termsCountryType = result.getTermsCountryType();
final List<GamebaseTermsContentDetail> contents = result.getContents();
} else if (exception.getCode() == GamebaseError.UI_TERMS_NOT_EXIST_FOR_DEVICE_COUNTRY) {
// Another country device.
// Pass the 'terms and conditions' step.
} else {
// Failed.
}
}
});
API | Values | Description |
---|---|---|
getTermsSeq | int | 約款全体KEY。 updateTerms APIを呼び出す時に必要な値です。 |
getTermsVersion | String | 約款バージョン。 updateTerms APIを呼び出す時に必要な値です。 |
getTermsCountryType | String | 約款タイプ。 - KOREAN:韓国の約款 - GDPR :ヨーロッパの約款 - ETC:その他の国 |
getContents | List |
約款項目別詳細情報 |
API | Values | Description |
---|---|---|
getTermsContentSeq | int | 約款項目KEY |
getName | String | 約款項目名 |
getRequired | boolean | 必須同意有無 |
getAgreePush | String | 広告性プッシュ同意有無。 - NONE :同意しない - ALL :全て同意 - DAY :1週間プッシュ同意 - NIGHT :夜間プッシュ同意 |
getAgreed | boolean | 該当約款項目のユーザー同意有無。 - ログイン前は常にfalse。 - プッシュ項目は常にfalse。 |
getNode1DepthPosition | int | 1段階項目表示順序。 |
getNode2DepthPosition | int | 2段階項目表示順序。 ない場合は-1 |
getDetailPageUrl | String | 約款詳細表示URL。 ない場合はnull。 |
queryTerms APIでダウンロードした約款情報でUIを直接作った場合は、 ゲームユーザーが約款に同意した内容をupdateTerms APIを介してGamebaseサーバーへ送信してください。
任意約款同意をキャンセルするように、約款に同意した内容を変更する目的で活用できます。
[注意]
プッシュ受信同意有無は、Gamebaseサーバーに保存されません。 プッシュ受信同意有無は、ログイン後にGamebase.Push.registerPush APIを呼び出して保存してください。
API
+ (void)Gamebase.Terms.updateTerms(@NonNull Activity activity,
@NonNull GamebaseUpdateTermsConfiguration configuration,
@Nullable GamebaseCallback callback);
ErrorCode
Error | Error Code | Description |
---|---|---|
NOT_INITIALIZED | 1 | Gamebaseが初期化されていません。 |
UI_TERMS_UNREGISTERED_SEQ | 6923 | 登録されていない約款Seq値を設定しました。 |
UI_TERMS_ALREADY_IN_PROGRESS_ERROR | 6924 | 以前に呼び出されたTerms APIがまだ完了していません。 しばらくしてから再度試行してください。 |
Example
Gamebase.Terms.queryTerms(activity, new GamebaseDataCallback<GamebaseQueryTermsResult>() {
@Override
public void onCallback(GamebaseQueryTermsResult result, GamebaseException queryTermsException) {
if (Gamebase.isSuccess(queryTermsException)) {
// Succeeded to query terms.
final int termsSeq = result.getTermsSeq();
final String termsVersion = result.getTermsVersion();
final List<GamebaseTermsContent> contents = new ArrayList<>();
for (GamebaseTermsContentDetail detail : result.getContents()) {
GamebaseTermsContent content = GamebaseTermsContent.from(detail);
// TODO: Change agree value what you want.
content.setAgreed(agreeOrNot);
contents.add(content);
}
final GamebaseUpdateTermsConfiguration configuration =
GamebaseUpdateTermsConfiguration.newBuilder(termsSeq, termsVersion, contents)
.build();
Gamebase.Terms.updateTerms(activity, configuration, new GamebaseCallback() {
@Override
public void onCallback(GamebaseException updateTermsException) {
if (Gamebase.isSuccess(updateTermsException)) {
// Succeeded to update terms.
} else {
// Failed to update terms.
}
}
});
} else {
// Failed to query terms.
}
}
});
Builder
API | Description |
---|---|
newBuilder(String termsVersion, int termsSeq, List |
Configurationオブジェクトを作成するためのBuilderを作成します。 |
build() | 設定を終えたBuilderをConfigurationオブジェクトに変換します。 |
Parameter | Mandatory(M) / Optional(O) | Type | Description |
---|---|---|---|
termsSeq | M | int | 約款全体KEY。 queryTerms APIを呼び出してダウンロードした値を伝達する必要があります。 |
termsVersion | M | String | 約款のバージョン。 queryTerms APIを呼び出してダウンロードした値を伝達する必要があります。 |
contents | M | List |
任意約款ユーザー同意情報 |
Constructor
API | Description |
---|---|
GamebaseTermsContent(int termsContentSeq, boolean agreed) | GamebaseTermsContent作成者です。 |
from(GamebaseTermsContentDetail) | GamebaseTermsContentDetailオブジェクトからGamebaseTermsContentオブジェクトを作成するFactory Methodです。 |
setAgreed(boolean) | 該当オブジェクトのagreed値を変更します。 |
Parameter | Mandatory(M) / Optional(O) | Values | Description |
---|---|---|---|
termsContentSeq | M | int | 任意約款項目KEY |
agreed | M | boolean | 任意約款項目同意有無 |
現在約款ウィンドウが表示されている状態かどうかを伝えます。
API
+ (boolean)Gamebase.Terms.isShowingTermsView();
Gamebaseでは、基本的なWebViewに対応しています。
WebViewを表示します。
API
+ (void)Gamebase.WebView.showWebView(Activity activity,
String urlString,
GamebaseWebViewConfiguration configuration,
GamebaseCallback onCloseCallback,
List<String> schemeList,
GamebaseDataCallback<String> onEvent);
Example
Gamebase.WebView.showWebView(activity, "https://www.toast.com");
ユーザーが指定したWebViewを表示します。
GamebaseWebViewConfigurationでユーザーが指定したWebViewを作成することができます。
GamebaseWebViewConfiguration configuration
= new GamebaseWebViewConfiguration.Builder()
.setTitleText("title") // WebViewタイトルを設定
.setScreenOrientation(ScreenOrientation.PORTRAIT) // WebViewのスクリーン方向を設定
.setNavigationBarColor(Color.RED) // ナビゲーションバーの色を設定
.setNavigationBarHeight(40) // ナビゲーションバーの高さを設定
.setBackButtonVisible(true) // 戻るボタンを有効にするかどうかを設定
.setBackButtonImageResource(R.id.back_button) // 戻るボタンの画像を設定
.setCloseButtonImageResource(R.id.close_button) // 閉じるボタンの画像を設定
.build();
GamebaseWebView.showWebView(activity, "https://www.toast.com", configuration);
Gamebase WebViewでローディングしたWebページ内に、スキームで特定機能を使用したり、Webページの内容を変更できます。
Gamebaseで指定しておいたスキームです。
スキーマ | 用途 |
---|---|
gamebase://dismiss | WebViewを閉じる |
gamebase://goBack | WebView前に戻る |
gamebase://getUserId | 現在ログインしているユーザーのIDを表示 |
gamebase://showwebview?link={URLEncodedURL} | linkパラメータのURLをWebViewで開く。 URLEncodedURL :WebViewで開くURL。 URLのデコード必要。 |
gamebase://openbrowser?link={URLEncodedURL} | linkパラメータのURLを外部ブラウザで開く。 URLEncodedURL:外部ブラウザで開くURL。 URLデコード必要。 |
Gamebaseにスキーム名とブロックを指定し、自由に機能を追加できます。
GamebaseWebViewConfiguration configuration = new GamebaseWebViewConfiguration.Builder()
.setTitleText(title)
.build();
List<String> schemeList = new ArrayList<>();
schemeList.add("mygame://test");
schemeList.add("mygame://opensomebrowser");
schemeList.add("closemywebview://");
showWebView(activity, urlString, configuration,
new GamebaseCallback() {
@Override
public void onCallback(GamebaseException exception) {
// When closed WebView, this callback will be called.
}
},
schemeList,
new GamebaseDataCallback<String>() {
@Override
public void onCallback(String fullUrl, GamebaseException exception) {
if (Gamebase.isSuccess(exception)) {
if (fullUrl.contains("mygame://test")) {
// Do something.
} else if (fullUrl.contains("mygame://opensomebrowser")) {
Gamebase.WebView.openWebBrowser(someUrl);
} else if (fullUrl.contains("closemywebview://")) {
// We will close webview.
Gamebase.WebView.closeWebView(activity);
}
} else {
// Something went wrong.
}
}
});
Method | Values | Description |
---|---|---|
setTitleText(String title) | title | WebViewのタイトル |
setScreenOrientation(int orientation) | ScreenOrientation.PORTRAIT | 縦モード |
ScreenOrientation.LANDSCAPE | 横モード | |
ScreenOrientation.LANDSCAPE_REVERSE | 横モードを180度回転 | |
setNavigationBarVisible(boolean enable) | true or false | ナビゲーションバーの有効または無効 default: true |
setNavigationBarColor(int color) | Color.argb(a, r, b, b) | ナビゲーションバーの色 |
setNavigationBarHeight(int height) | height | ナビゲーションバーの高さ |
setBackButtonVisible(boolean visible) | true or false | 戻るボタンの有効または無効 default: true |
setBackButtonImageResource(int resourceId) | ID of resource | 戻るボタンの画像 |
setCloseButtonImageResource(int resourceId) | ID of resource | 閉じるボタンの画像 |
enableAutoCloseByCustomScheme(boolean enable) | true or false | カスタムScheme動作時、自動的にWebビュー終了。 default: true |
enableFixedFontSize(boolean enable) | true or false | システム文字サイズを無視し、固定されたサイズでWebビューを表示。 default: false |
setRenderOutsideSafeArea(boolean render) | true or false | safe areaを無視し、cutout領域にもrender。 default: false |
次のAPIを通じて、表示されているWebViewを閉じることができます。
API
+ (void)Gamebase.WebView.closeWebView(Activity activity);
次のAPIを通じて、外部ブラウザを開くことができます。パラメーターで送信されるURLは、有効な値でなければなりません。
API
+ (void)Gamebase.WebView.openWebBrowser(Activity activity, String urlString);
システム通知を表示することができます。
タイトルとメッセージだけを入力して簡単に通知のダイアログボックスを表示することができます。
API
+ (void)Gamebase.Util.showAlertDialog(Activity activity, String title, String message);
通知のダイアログボックスを表示した後、処理結果をコールバックで受け取りたい場合は次のAPIを使用します。
API
+ (void)Gamebase.Util.showAlertDialog(Activity activity,
String title, // タイトルテキスト。
String messsage, // メッセージテキスト。
String okButtonText, // ポジティブボタンテキスト。
DialogInterface.OnClickListener clickListener); // ポジティブボタンを押したときに呼び出されるListener。
次のAPIを使用して簡単にAndroid トースト(toast)のメッセージを表示することができます。
メッセージを表示する時間タイプのパラメーターはint形式であり、Android SDK NotificationManagerServiceクラスの定義に基づき、下の図の時間の間、表示されます。
時間タイプ(int) | 表示時間 |
---|---|
Toast.LENGTH_SHORT | 2秒 |
Toast.LENGTH_LONG | 3.5秒 |
0 | Toast.LENGTH_SHORT => 2秒 |
1 | Toast.LENGTH_LONG => 3.5秒 |
残りのすべての値 | Toast.LENGTH_SHORT => 2秒 |
API
+ (void)Gamebase.Util.showToast(Activity activity,
String message, // 表示するメッセージテキスト
int duration); // メッセージを表示する時間タイプ (Toast.LENGTH_SHORT or Toast.LENGTH_LONG)
メンテナンス状態で「詳細確認」をクリックすると表示されるメンテナンスページを変更することができます。
*ユーザーの指定するウェブページをメンテナンスページに登録 * AndroidManifest.xmlにcom.gamebase.maintenance.detail.urlをキー値とするmeta-dataを設定します。 * android:valueの値に.htmlファイルまたはURLを入力することができます。
<meta-data
android:name="com.gamebase.maintenance.detail.url"
android:value="file:///android_asset/html/gamebase-maintenance.html"/>
Error | Error Code | Description |
---|---|---|
UI_UNKNOWN_ERROR | 6999 | 不明なエラーです(定義されていないエラーです)。 |