アプリ情報
アプリのバージョン、端末情報、現在のサブスクリプションプランにアクセスする
概要
App Bridge は現在のアプリ実行環境に関する情報(プラットフォーム・バージョン・ロケール・サブスクリプションプランなど)と端末識別子を提供します。サーバー側のログ収集・バージョン別の機能分岐・プランベースの UI 制御などに活用できます。Android と iOS で同じ JS API を使用します。
| 機能 | Android | iOS |
|---|---|---|
アプリ情報の取得(app.getInfo) | ✓ | ✓ |
端末 ID(getDeviceId) | ✓ | ✓ |
アプリバージョン(getAppVersion) | ✓ | ✓ |
セキュリティポリシー取得(app.getSecurityPolicy) | ✓ | ✓ |
app.getInfo
現在のアプリ実行環境に関するすべての情報を一度に取得する標準メソッドです。コールバック関数名(文字列)を渡すと、その window 関数が情報オブジェクトを引数として呼び出されます。現在のサブスクリプションプランと有効な機能を確認する正式(canonical)な方法です。
window.unveilyBridge.app.getInfo("onAppInfo");
function onAppInfo(info) {
console.log(info.tier); // "basic" | "standard" | "pro"
console.log(info.platform); // "android" | "ios"
console.log(info.appVersion); // "1.2.0"
console.log(info.isOffline); // boolean
}情報オブジェクトのフィールド
| フィールド | 型 | 説明 |
|---|---|---|
isApp | boolean | SDK アプリ内で実行中かどうか(通常のブラウザでは false) |
platform | string | "android" | "ios" |
appVersion | string | アプリのバージョン名(例: "1.2.0") |
buildNumber | string | ビルド番号 |
packageName | string | Android のパッケージ名 / iOS の Bundle ID |
locale | string | 現在のロケール(例: "ko") |
tier | string | サブスクリプションプラン — "basic" | "standard" | "pro" |
licenseType | string | ライセンスの種類 |
isOffline | boolean | オフラインモードが有効かどうか |
isTablet | boolean | タブレット端末かどうか |
orientation | string | "portrait" | "landscape" |
licenseKey は公開されません
セキュリティ上、ライセンスキー(licenseKey)はこのレスポンスに意図的に含まれません。クライアントコードからライセンスキーにアクセスすることはできません。プランに応じて UI を分岐するには tier フィールドを使用してください。
コールバック名を省略すると、デフォルトの onAppInfo が使用されます。つまり window.unveilyBridge.app.getInfo() を呼び出し、window.onAppInfo 関数を定義してもかまいません。
例 — プランに応じた機能分岐
window.unveilyBridge.app.getInfo("onAppInfo");
function onAppInfo(info) {
if (info.tier === "pro") {
enableInAppPurchase();
} else {
showUpgradePrompt();
}
}getDeviceId
アプリのインストール単位の固有識別子を同期的に返します。
const id = window.unveilyBridge.getDeviceId();
console.log("端末 ID:", id);getDeviceId() が返す値はアプリのインストール単位の固有識別子です。広告 ID(GAID/IDFA)とは異なり、ユーザーを個人識別する情報ではありません。
getAppVersion
現在インストールされているアプリのバージョン文字列を同期的に返します。
const version = window.unveilyBridge.getAppVersion();
console.log("アプリバージョン:", version); // 例: "1.2.0"ビルド番号も必要な場合は、app.getInfo の buildNumber フィールドを使用してください。
その他の app ネームスペース
app.isTablet
タブレット端末かどうかを同期的に返します。レイアウトの分岐に使用します。
const isTablet = window.unveilyBridge.app.isTablet(); // booleanapp.orientation
現在の画面の向きを同期的に返します。
const orientation = window.unveilyBridge.app.orientation(); // "portrait" | "landscape"app.setLocale
メニューラベルなど SDK が管理するロケールを上書きします。アプリでユーザーが言語を変更したときに呼び出してください。
window.unveilyBridge.app.setLocale("ko"); // "ko" | "en" | "ja" | BCP-47
window.unveilyBridge.app.setLocale(""); // 端末のロケールにリセットapp.openExternalUrl
http(s) の URL を端末の既定のブラウザで開きます。WebView 内ではなく外部ブラウザに遷移します。http/https 以外のスキームは無視されます。
window.unveilyBridge.app.openExternalUrl("https://example.com");
// 最上位のエイリアスも同じように動作します
window.unveilyBridge.openExternalUrl("https://example.com");app.openSettings
アプリのシステム設定画面を開きます。ユーザーに権限(位置情報・カメラなど)を自分で変更してもらうよう案内するときに使用します。
window.unveilyBridge.app.openSettings();app.getSecurityPolicy
現在適用されているセキュリティポリシーを取得します(読み取り専用)。コールバック関数名(文字列)を渡すと、ポリシーオブジェクトを引数として受け取ります。
window.unveilyBridge.app.getSecurityPolicy("onSecurityPolicyLoaded");
function onSecurityPolicyLoaded(policy) {
console.log(policy.screenshotProtection); // スクリーンショット防止
console.log(policy.backgroundProtection); // バックグラウンド画面保護
console.log(policy.rootDetection); // ルート化 / 脱獄の検出
}| フィールド | 説明 |
|---|---|
screenshotProtection | スクリーンショット / 画面録画の防止が有効かどうか |
backgroundProtection | アプリスイッチャーで画面内容を隠す機能が有効かどうか |
rootDetection | ルート化(Android)/ 脱獄(iOS)の検出が有効かどうか |
コールバック名を省略すると、デフォルトの onSecurityPolicyLoaded が使用されます。