注意
App Store ガイドラインの変更とプライバシー マニフェストの導入により、SDK v3.0.0 以降ではデータ セーフティ機能が廃止されました。SDKのデータ レポートを管理するには、代わりに Wovn Ignore または App Operator を使用してください。
注: 3.0.0 以降のすべての SDK バージョンには、プライバシー マニフェスト ファイルが含まれています。
目次
概要
各種機能と有効化の手順について
Error Report
WOVN.app SDKでエラーが発生した時、WOVN サーバーにエラーの内容を通知する機能です。エラー通知の時、端末の情報(OS バージョン、デバイス名など)と言語設定も一緒に通知されます。
<有効化手順>
初期設定では有効になっています。現状の設定値の確認、設定値の変更をする際にはお問い合わせください。
Report
アプリに表示される文言(元言語)を、翻訳対象としてWOVN サーバーへ送信する機能です。レポート機能を ON にすることで、WOVN 管理画面にアプリコンテンツが登録されます。
<有効化手順>
- WOVN管理画面の「設定」を開きます。
- 「詳細設定」→「コンテンツ自動取得」を ON にします。
Dynamic Loading
アプリの文言を翻訳するとき、Screen、Display、キャッシュキーに紐づいていないコンテンツであっても、プロジェクトに対訳データが含まれていれば翻訳できるようにする機能です。
<有効化手順>
初期設定では有効になっています。現状の設定値の確認、設定値の変更をする際にはお問い合わせください。
アプリ利用ユーザーから同意結果を取得するには
アプリ側で、アプリ利用ユーザーに同意結果を取得する場合は、同意の有無を、WOVN.app SDK インタフェース Wovn.setPermission() を用いて通知してください。
同意を得た場合は、アプリ内部にその値を保存し、アプリの起動時に WOVN.app SDK へ毎度通知するように実装してください。
注意
SDK v1.12.0以降、v2.1.0以降では「機能ON」と「エンドユーザーの許可」、両方を満たさなければレポートが動作しないようになっています。こちらは、同意のUI 方法にかかわらず必要な作業ですので、同意の取り方に合わせて構築をお願いいたします。
インフォメーション
詳しくはWovnクラス文書をご参照ください。
インフォメーション
SDK内部では値を保存していませんので、都度の通知が必要になります。
各種設定サンプルコード
Error Report
Android
// Android
// Java
SharedPreferences sharedPref = context.getSharedPreferences("preference", Context.MODE_PRIVATE);
if (sharedPref.contains("errorPermission")) {
boolean permission = sharedPref.getBoolean("errorPermission", false);
Wovn.setPermission(WovnPermission.error, permission);
} else {
boolean result = // ユーザ同意UIの結果
Wovn.setPermission(WovnPermission.error, result);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putBoolean("errorPermission", result);
editor.apply();
}
iOS
// iOS
// Swift
if let permission = UserDefaults.standard.object(forKey: "errorPermission") as? Bool {
Wovn.setPermission(permission: WovnPermission.error, enabled: permission)
} else {
let result = // ユーザ同意UIの結果
Wovn.setPermission(permission: WovnPermission.error, enabled: result)
UserDefaults.standard.set(result, forKey: "errorPermission")
}
ReactNative
// PermissionType = 'all' | 'dynamicLoading' | 'errorReport' | 'report'
import { PermissionType, setPermission } from '@wovnio/react-native-sdk-core'
// set permission and target function name to IF
// setPermission(同意対象となる機能, ユーザー同意UIの結果)
setPermission('errorReport', true)
Report
Android
// Android
// Java
SharedPreferences sharedPref = context.getSharedPreferences("preference", Context.MODE_PRIVATE);
if (sharedPref.contains("reportPermission")) {
boolean permission = sharedPref.getBoolean("reportPermission", false);
Wovn.setPermission(WovnPermission.report, permission);
} else {
boolean result = // ユーザ同意UIの結果
Wovn.setPermission(WovnPermission.report, result);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putBoolean("reportPermission", result);
editor.apply();
}
iOS
// iOS
// Swift
if let permission = UserDefaults.standard.object(forKey: "reportPermission") as? Bool {
Wovn.setPermission(permission: WovnPermission.report, enabled: permission)
} else {
let result = // ユーザ同意UIの結果
Wovn.setPermission(permission: WovnPermission.report, enabled: result)
UserDefaults.standard.set(result, forKey: "reportPermission")
}
ReactNative
// PermissionType = 'all' | 'dynamicLoading' | 'errorReport' | 'report'
import { PermissionType, setPermission,} from '@wovnio/react-native-sdk-core'
// set permission and target function name to IF
// setPermission(同意対象となる機能, ユーザー同意UIの結果)
setPermission('report', true)
Dynamic Loading
Android
// Android
// Java
SharedPreferences sharedPref = context.getSharedPreferences("preference", Context.MODE_PRIVATE);
if (sharedPref.contains("dynamicPermission")) {
boolean permission = sharedPref.getBoolean("dynamicPermission", false);
Wovn.setPermission(WovnPermission.dynamic, permission);
} else {
boolean result = // ユーザ同意UIの結果
Wovn.setPermission(WovnPermission.dynamic, result);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putBoolean("dynamicPermission", result);
editor.apply();
}
iOS
// iOS
// Swift
if let permission = UserDefaults.standard.object(forKey: "dynamicPermission") as? Bool {
Wovn.setPermission(permission: WovnPermission.dynamic, enabled: permission)
} else {
let result = // ユーザ同意UIの結果
Wovn.setPermission(permission: WovnPermission.dynamic, enabled: result)
UserDefaults.standard.set(result, forKey: "dynamicPermission")
}
ReactNative
// PermissionType = 'all' | 'dynamicLoading' | 'errorReport' | 'report'
import { PermissionType, setPermission } from '@wovnio/react-native-sdk-core'
// set permission and target function name to IF
// setPermission(同意対象となる機能, ユーザー同意UIの結果)
setPermission('dynamicLoading', true)