必要条件

前提知識

  • AEM Mobile について理解していること
  • オンデマンドポータルでのコンテンツの作成および公開に関する知識があること
  • JavaScript に関する知識があること 

必要な製品

  • AEM Mobile

はじめに

Experience Manager Mobile 固有の Cordova 対応プラグインは、アプリケーションと現在表示中の記事に関連する特定のデータへのアクセスを提供する JavaScript API のセットです。AEM Mobile Cordova プラグインを利用するには、オンデマンドサービスポータルで記事のプロパティの「拡張機能を有効にする」オプションが選択されているか、記事エンティティメタデータの isTrustedContent パラメーターが On-Demand Services API によって true に設定されている必要があります。

AEM Mobile 固有の Cordova 対応プラグインは、Cordova を利用する他のプラグインと競合が発生しないよう、名前空間 cq.mobile を使用します。API は複数のモジュールから構成されています。各モジュールはシングルトンであり、いくつかのメソッドとプロパティを装備しています。

Core Cordova API の使用について詳しくは、AEM Mobile での Cordova プラグインの使用を参照してください。

Cordova 対応プラグインは、コンテキスト、デバイス、アプリケーション、ユーザーに分類されます。

 

Cordova のサンプル

GetEntity API について説明するビデオ(英語のみ)

GetEntity API について説明するビデオ(英語のみ)

コンテキスト API

プロパティ – コンテキスト

コンテキストモジュールは、指定したコンテキスト内のエンティティ情報へのアクセスを提供します。

使用可能性

このプラグインは、グローバル cq.mobile.context オブジェクトを定義します。これは、deviceready イベントの終了後まで使用できません。

名前 揮発 コメント
cq.mobile.context.collection Entity1 いいえ 現在のコンテキストが孤立したコンテキストの場合は、空(null)にできます。
cq.mobile.context.entity Entity1 いいえ

スコープのエンティティを返します。

スコープ:

  • コンテンツ WebView - Web ビュー内に表示されるコンテンツ。
  • オーバーレイ WebView - オーバーレイが属するコンテンツ。
  • 動的バナーの WebView – Web ビューが属する動的バナー。
cq.mobile.context.nextEntity Entity1 いいえ

これが最後のエンティティの場合、空(null)にできます。

注意:動的バナーの次のエンティティは、ブラウザービューで動的バナーの次にくるエンティティです。これは、親コレクションの要素配列の次のエンティティとは異なる可能性があります。これは、nextEntity が記事から呼び出されるときに発生する動作と異なります(これは、親コレクションの子要素配列から順序を返します)。

cq.mobile.context.previousEntity Entity1 いいえ

これが最初のエンティティの場合、空(null)にできます。

動的バナーについては、nextEntity に関する上記「注意」を参照してください。

cq.mobile.context.type String いいえ 使用可能な値:「article」、「overlay」、「dynamicBanner」

1 Entity には、次のセクションで説明するように、次のフィールドが含まれています。idmetadatarootPath および type

プロパティ – Entity

名前 コメント
id String  
metadata Object2 エンティティ型に固有のメタデータ
rootPath String 記事および動的バナーにのみ適用されます。現在のコンテキストで実行しているエンティティのルートパスを表します。他のプラグインへの参照として使用して、エンティティ内に含まれるリソースへのパスを作成できます(iOS および Android のみ)。
type String 使用可能な値:「collection」、「article」、「banner」、「dynamicBanner」

2 metadata オブジェクトには、次のセクションで説明するように、Entity 型によって異なるフィールドセットが含まれます。

プロパティ – メタデータ

名前 エンティティのサポート コメント
abstract
String 記事、コレクション、バナー、動的バナー  
accessState String 記事
使用可能な値:「free」、「metered」、「protected」
adCategory String 記事、動的バナー
 
adType String 記事、動的バナー
使用可能な値:「static」、「EFT」
allowDownload Boolean コレクション  
articleText String 記事
 
author String 記事
 
authorURL String 記事
 
availabilityDate String 記事、コレクション、バナー、動的バナー  
advertiser String 記事、動的バナー
 
category String 記事、コレクション、バナー、動的バナー  
created String 記事、コレクション、バナー、動的バナー  
department String 記事、コレクション、バナー、動的バナー  
entityName String 記事、コレクション、バナー、動的バナー  
hideFromBrowsePage Boolean 記事
 
importance String 記事、コレクション、バナー、動的バナー 使用可能な値:「low」、「normal」、「high」
isAd Boolean 記事、動的バナー
 
isIssue Boolean 記事
 
keywords String Array 記事、コレクション、バナー、動的バナー  
lateralNavigation Boolean コレクション  
modified String 記事、コレクション、バナー、動的バナー  
openTo String コレクション 使用可能な値:「browsePage」、「contentView」
productIds String Array コレクション  
published String 記事、コレクション、バナー、動的バナー  
readingPosition String コレクション 使用可能な値:「reset」、「retain」
shortAbstract String 記事、コレクション、バナー、動的バナー  
shortTitle String 記事、コレクション、バナー、動的バナー  
socialShareUrl String 記事、コレクション、バナー、動的バナー  
tapAction String バナー  
title String 記事、コレクション、バナー、動的バナー  
url String 記事、コレクション、バナー、動的バナー  
version String 記事、コレクション、バナー、動的バナー  

メソッド

名前 引数 応答 コメント
getEntity
(entityName,
entityType, forceUpdate,
success, error)

entityName:
String - エンティティ名

entityType:
String - エンティティの種類

forceUpdate:
Boolean - true の場合、常にサーバーに最新バージョンを問い合わせる

success:
Function - 成功コールバック

error:
Function - エラーコールバック

成功した場合:Entity オブジェクト

注意:null は、動的バナーで許可されている戻り値です(これは、このエンティティタイプの必須プロパティではないため)

失敗した場合:コードプロパティが入力された cq.mobile.contextError オブジェクト

記事、バナー、コレクション、ダイナミックバナーをサポート

entityName は、オンデマンドサービスの(タイトルではなく)名前と一致する必要があります。

entityType は、Entity.type の値と一致する必要があります。

forceUpdate が false でエンティティがキャッシュされる場合、そのエンティティが返されます。そのエンティティの最新バージョンではない場合があります。

forceUpdate が true でサーバーに接続できない場合、キャッシュにあれば既存のエンティティが返されます。キャッシュに何も存在しない場合、ネットワークエラーが返されます。

サーバーに接続できず、要求されたエンティティを見つけられない場合(または制限されていてユーザーが権利付与されていない場合)は、Entity Not Found エラーが返されます。

getEntitlementInfo
(entityOrEntityList,
success, error)

entityOrEntityList:
Entity または EntityList オブジェクト - 権利付与情報を取得するエンティティ

success:
Function - 成功コールバック

error:
Function - エラーコールバック

成功した場合:

[
{
「entityName」:<entityName1>,
“isEntitled” : true または false
},
{
“entityName” : <entityName2>,
“isEntitled” : true または false
},
]

失敗した場合:コードプロパティが入力された cq.mobile.contextError オブジェクト

コレクションをサポート

getEntitlementInfo() は、コレクションの権利付与情報のみを返します。コレクション以外の Entity オブジェクトが渡されると、Wrong Entity Type エラーが返されます。

EntityList オブジェクトが渡されると、コレクションオブジェクトの entitlementInfo のみが返されます。コレクションがない場合は、返される配列は空になります。

1 分間以内の、この API に対する 26 番目のリクエスト(およびそれ以降のリクエスト)には、NETWORK_RATE_LIMIT_EXCEEDED_ERROR のエラーが返されます。

デバイスがオフラインの場合、キャッシュされた権利付与情報が返されます。

デバイスがオンラインで、権利付与サービスに接続できない場合、Network エラーが返されます。

getEntityStatus
(entity, success, error)

entity:コレクションのダウンロードステータス

success: Function - 成功コールバック

error: Function - エラーコールバック

成功した場合:
{"entityName":"isSavable":"progressPercent":"downloadState":}

失敗した場合: コードプロパティが入力された cq.mobile.contextError オブジェクト

コレクションをサポート

getEntityStatus() は、コレクション Entity のダウンロードステータス情報を取得します。

ステータス情報:

"entityName":コレクション Entity の名前。

"isSavable":コレクションはコレクションのプロパティで許可されたのダウンロード (保存) としてマークされ、true を返すのに十分な権利が付与されている必要があります。

"progressPercent":コレクションのダウンロードの進行状況(0 ~ 100 %)。注意:情報がメモリからフラッシュされた場合、この値は正確でないことがあります。この記事で後述されているダウンロード状況を参照してください。

エラー:getEntityStatus() は、コレクションの権利付与ステータス情報のみを返します。コレクション以外の Entity オブジェクトが渡された場合、見つからない場合、または初期化されていない場合には、エラーが返されます。この記事で後述されているエラーの一覧を参照してください。

saveEntity(entity, isSilent, success, error)

entity:ダウンロードして保存するコレクション。

isSilent:BOOL - (Androidのみ) true の場合、エンティティは通知なしでバックグラウンドに保存されます。

success: Function - 成功コールバック

error: Function - エラーコールバック

成功した場合: {"rawEntity":"downloadPercent":"downloadState" }

失敗した場合:コードプロパティが入力されたエラー

コレクションをサポート

saveEntity() は、指定したコレクション Entity をダウンロードして保存します。UI のダウンロードボタンをクリックする操作に相当します。

成功コールバック:成功コールバックは保存されるエンティティオブジェクトを返します。また、成功コールバックはダウンロードの進行状況が更新されるたびに呼び出されます。進行状況は、"downloadPercent" および "downloadState" の戻り値で追跡できます。保存およびダウンロードが開始すると、コレクションのダウンロードが現在のアクティブなダウンロードになる必要があります。別のコレクションのダウンロードが開始すると、そのコレクションがアクティブなダウンロードになり、最初のコレクションは一時停止します。最初のコレクションはダウンロードを再開する必要があり、2 つ目のコレクションのダウンロードが終了するとステートがアクティブになります。

エラー:saveEntity() は、コレクションのみをダウンロードします。コレクション以外の Entity オブジェクトが渡された場合、コレクションが見つからない場合、またはダウンロードがキャンセルされた場合に、エラーが返されます。この記事で後述されているエラーの一覧を参照してください。

archiveEntity(entity, success, error)

entity:Entity オブジェクト - アーカイブするエンティティ(未保存)

success: Function - 成功コールバック

error: Function - エラーコールバック

成功した場合:Entity オブジェクト

失敗した場合:コードプロパティが入力されたエラー

コレクションをサポート

archiveEntity() は、指定したコレクション Entity をアーカイブします( saveEntity() の反対)。UI のチェックマークボタンをタップする操作に相当します。コレクションのダウンロードと保存が完了すると、archiveEntity はコレクションを非永続的で削除されやすいものとしてマークします。コレクションがダウンロード中またはダウンロード待機中の場合、ダウンロードはキャンセルされ、ダウンロード済みのコンテンツは削除可能としてマークされます。

成功:アーカイブされた Entity オブジェクトが返されます。

エラー:archiveEntity() は、コレクションのみをアーカイブします。コレクション以外の Entity オブジェクトが渡された場合、またはコレクションが見つからない場合に、エラーが返されます。

getSavedEntities(success, error)

success: Function - 成功コールバック

error: Function - エラーコールバック

成功した場合:一連の Entity オブジェクト

失敗した場合:コードプロパティが入力されたエラー

コレクションをサポート

getSavedEntities() は、エンティティ オブジェクトのダウンロード済みまたはダウンロード待機中の一連の Entity オブジェクトを返し、保存されます。

getBackgroundImage
(width, height, success, error)

width:Number - 要求された幅

height:Number - 要求された高さ

success:Function - 成功コールバック

error:Function - エラーコールバック

成功した場合:success コールバックの引数としての背景画像へのファイル URL

失敗した場合:コードプロパティが入力された cq.mobile.contextError オブジェクト

コレクションをサポート

Runtime Viewer は画像をスケールしません。代わりに、指定されたサイズに最も近い画像サイズを返します。

画像がデバイス上でキャッシュされていない場合は、オンデマンドサービスから背景画像を要求します。ほとんどの場合、画像は当面の間、キャッシュに残ります。

呼び出しがコレクション以外の型のエンティティで実行される場合、エラーコールバックが呼び出されます。

getThumbnailImage
(width, height, success, error)

width:Number - 要求された幅

height:Number - 要求された高さ

success:Function - 成功コールバック

error:Function - エラーコールバック

成功した場合:success コールバックの引数としてのサムネイル画像へのファイル URL

失敗した場合:コードプロパティが入力された cq.mobile.contextError オブジェクト

記事、バナー、コレクション、ダイナミックバナーをサポート

Runtime Viewer は画像をスケールしません。代わりに、指定されたサイズに最も近い画像サイズを返します。

画像がデバイス上でキャッシュされていない場合は、オンデマンドサービスからサムネイル画像を要求します。ほとんどの場合、画像は当面の間、キャッシュに残ります。

 

getSocialSharingImage
(width, height, success, error)

width:Number - 要求された幅

height:Number - 要求された高さ

success:Function - 成功コールバック

error:Function - エラーコールバック

成功した場合:success コールバックの引数としてのソーシャルシェアの画像へのファイル URL

失敗した場合:コードプロパティが入力された cq.mobile.contextError オブジェクト

記事をサポート

Runtime Viewer は画像をスケールしません。代わりに、指定されたサイズに最も近い画像サイズを返します。

画像がデバイス上でキャッシュされていない場合は、オンデマンドサービスからソーシャルシェアの画像を要求します。ほとんどの場合、画像は当面の間、キャッシュに残ります。

呼び出しがコレクション以外の型のエンティティで実行される場合、エラーコールバックが呼び出されます。

getChildren(success, error)

success:
Function - 成功コールバック

error:
Function - エラーコールバック

成功した場合:EntityList オブジェクト

失敗した場合:コードプロパティが入力された cq.mobile.contextError オブジェクト

コレクションをサポート

EntityList には、キャッシュにある、このコレクションの制限されていないすべての子エンティティが含まれます。何も存在しない場合は、子の最初のサーバーページをダウンロードしようとします。

getContentLocation(success, error)

success: Function - 成功コールバック

error: Function - エラーコールバック

成功した場合:ContentLocation オブジェクトを返します

記事をサポート

ContentLocation オブジェクトには、pageNumber と totalPageCount が含まれます。
pageNumber はゼロベースであるため、0 が記事の最初のページになります。これらの値は、記事内のコンテンツの物理的な場所を反映しています。HTML 記事の場合は、totalPageCount が 1、pageNumber は 0 になります。

これらのメタデータプロパティのその他の詳細情報については、サードパーティ製システムと AEM Mobile の連携を参照してください。

プロパティ – EntityList

名前 コメント
entities Array エンティティのリストです。使用可能なエンティティ:「article」、「collection」、「banner」
hasNextPage Boolean 「true」の場合、リストに他にもエンティティがあります。リストからエンティティの次のページを取得するには、メソッド getNextPage() を使用します。

メソッド

名前 引数 応答 エンティティのサポート コメント
getNextPage
(success, error)

success:
Function - 成功コールバック

error:
Function - エラーコールバック

成功した場合:エンティティプロパティに別の Entity 項目が含まれ、hasNextPage プロパティが更新されます。

失敗した場合:コードプロパティが入力された cq.mobile.contextError オブジェクト

コレクション

hasNextPage が false のときに getNextPage() が呼び出されると、No More Entity Pages エラーが返されます。

返されるエンティティは制限されません。制限付きの情報は、最後に getNextPage() が呼び出された後に変更された可能性があります。その場合、Entity Page Out of Date エラーが返されます。コレクションで getEntity() を呼び出して更新したコレクションを取得し、この更新したコレクションで getChildren() を呼び出す必要があります。

プロパティ – コンテキストエラー

cq.mobile.contextError は列挙オブジェクトで、コンテキストメソッドのすべてのサポートされているエラーコードを定義します。

名前
cq.mobile.contextError.UNKNOWN_ERROR
0
cq.mobile.contextError.INVALID_ARGUMENT_ERROR
10
cq.mobile.contextError.ENTITY_IMAGE_TYPE_NOT_SUPPORTED_FOR_ENTITY_ERROR
11
cq.mobile.contextError.NETWORK_ERROR
20
cq.mobile.contextError.NETWORK_RATE_LIMIT_EXCEEDED_ERROR
21
cq.mobile.contextError.ENTITY_IMAGE_ENTITY_NOT_FOUND_ERROR
40
cq.mobile.contextError.ENTITY_IMAGE_NETWORK_ERROR
41
cq.mobile.contextError.ENTITY_IMAGE_NOT_FOUND_ERROR
50
cq.mobile.contextError.ENTITY_NOT_FOUND_ERROR
61
cq.mobile.contextError.WRONG_ENTITY_TYPE_ERROR
71
cq.mobile.contextError.NO_MORE_ENTITY_PAGES_ERROR
72
cq.mobile.contextError.ENTITY_PAGE_OUT_OF_DATE_ERROR
73
cq.mobile.contextError.ENTITY_OUT_OF_DATE_ERROR 74
cq.mobile.contextError.ENTITY_SAVE_FAILURE 80
cq.mobile.contextError.ENTITY_SAVE_CANCELLED 80

 

プロパティ - ダウンロード状態

cq.mobile.downloadState は列挙オブジェクトで、コレクションダウンロードメソッドのすべてのサポートされているエラーコードを定義します。

名前
cq.mobile.downloadState.NONE
0
cq.mobile.downloadState.DOWNLOAD_PAUSED
1
cq.mobile.downloadState.DOWNLOAD_ACTIVE
2
cq.mobile.downloadState.DOWNLOAD_COMPLETE
3

 

デバイス API

デバイスモジュールはネイティブコードからの値を提供します。これらのプロパティは Cordova デバイスプラグインとは異なる名前空間に存在することに注意してください(window.cq.mobile.devicewindow.device)。

使用可能性

Cordova デバイスプラグインに加え、次のプロパティが追加されます。

プロパティ – デバイス

名前 揮発
コメント
cq.mobile.device.class String いいえ 使用可能な値:Phone、Tablet(Windows は、スマートフォンをサポートしていないので Tablet のみを返します)
cq.mobile.device.vendorId String いいえ iOS のみ(iOS 開発者ガイドの IdentifierForVendor を参照してください)

アプリケーション API

使用可能性

このプラグインは、グローバル cq.mobile.application オブジェクトを定義します。これは、deviceready イベントの終了後まで使用できません。

プロパティ – アプリケーション

名前 揮発 コメント
cq.mobile.application.id String いいえ 例:com.adobe.create
cq.mobile.application.pushNotificationToken String いいえ デバイスのプッシュ通知トークン(iOS ではデバイストークン、Android では登録 ID、Windows Viewer ではプッシュ通知が実装されていないので、実装されるまで値は「undefined」になります)
cq.mobile.application.runtimeVersion String いいえ 例:2015.5.1
cq.mobile.application.version String いいえ 1.0.4 など、アプリのバージョン付けの方法
cq.mobile.application.isAppSearchEnabled Boolean はい
検索が有効かどうかチェックします。
cq.mobile.application.isSocialSharingEnabled Boolean はい ソーシャルシェアが有効かどうかチェックします。

ユーザー API

使用可能性

このプラグインは、グローバル cq.mobile.user オブジェクトを定義します。これは、deviceready イベントの終了後まで使用できません。

イベント

名前 コメント
isauthenticatedchanged イベントは、ユーザーが認証状態を変更したときにトリガーされます。クライアントは、ユーザーオブジェクトに最新の状態を問い合わせる必要があります。
authtokenchanged イベントは、ユーザー認証トークンが変更されたときにトリガーされます。クライアントは、ユーザーオブジェクトに最新の状態を問い合わせる必要があります。

プロパティ – アプリケーション

名前 揮発 コメント
cq.mobile.user.authToken String はい  
cq.mobile.user.isAuthenticated Boolean はい  

メソッド

名前 引数 応答 コメント
setAuthToken(authToken, success, error)

authToken:string- authToken に必要な値

success:Function - 成功コールバック

error:Function - エラーコールバック

成功した場合:成功コールバックをパラメーターなしで呼び出します

失敗した場合:cq.mobile.userError コードセットを使用してエラーコールバックを呼び出します

この呼び出しは、汎用 ID プロバイダーが設定されているプロジェクトまたはプロバイダーがダイレクトエンタイトルメントのみの(ID プロバイダーが無い)プロジェクトでのみ正常に実行されます。これ以外の場合は、この API が呼び出されたときに、Authentication Support エラーが返されます。

setAuthToken 呼び出しが何らかの理由で失敗した場合(502、503、504 が返されます)、Viewer により一度再試行されるのが理想的です。再試行が失敗した場合、または再施行が実行されない場合は、ネットワーク エラーが返されます。
前回のリクエストのフライト中に作成されたこの API へのリクエストは、前回のリクエストが success または failure を返すまで、NETWORK_RATE_LIMIT_EXCEEDED_ERROR のエラーを返します。

1 分以内に、この API に対して 11 番目のリクエストが発生した場合、NETWORK_RATE_LIMIT_EXCEEDED_ERROR のエラーが返されます。11 番目以降のリクエストも 1 分が経過するまで同様です。

launchSignInUX(error) error:Function - エラーコールバック 失敗した場合:cq.mobile.userError コードセットを使用してエラーコールバックを呼び出します

認証がエンタイトルメントサーバー経由で発生している場合は、ネイティブのログインダイアログボックスが表示されます。

認証が ID プロバイダー経由で発生している場合は、デバイスの Viewer の Web ビューに認証 URL が表示されるか、デスクトップ Web Viewer で認証 URL にリダイレクトされます。

認証がプロジェクト内に指定されていない場合は、この API を呼び出すと、Authentication Support エラーが返されます。

ユーザーが既に認証されている場合は、認証が無効であるというエラーが返されます。

Web Viewer が認証設定を取得できない場合は、Network エラーが返されます。

ユーザーは、引き続き、オフライン中にデバイスの Viewer をログアウトできます。

signOut(error) error:Function - エラーコールバック 失敗した場合:cq.mobile.userError コードセットを使用してエラーコールバックを呼び出します

ユーザーをログアウトし、UI に反映されるようにログアウト状態を更新します。

認証がプロジェクト内に指定されていない場合は、この API を呼び出すと、Authentication Support エラーが返されます。

ユーザーが既に認証されている場合は、認証が無効であるというエラーが返されます。

Web Viewer がログアウトできない場合は、Network エラーが返されます。

認証設定を取得できない場合、デバイスの Viewer は、キャッシュ済みの認証設定を使用します。

refreshSignIn(success, error)

success:Function - 成功コールバック

error:Function - エラーコールバック

成功した場合:成功コールバックをパラメーターなしで呼び出します

失敗した場合:cq.mobile.userError コードセットを使用してエラーコールバックを呼び出します

この API は、現在のセッションが無効になったと判断した場合のみに、ユーザーのログインを更新するために使用します。この API は、次の 2 つのシナリオに該当する場合のみに、ログインを更新します。

1)プロジェクトはエンタイトルメントサービスによって設定されているが、カスタム認証は使用されていない。この API を呼び出すと、エンタイトルメントサービスで renewAuthToken 呼び出しが行われます。

2)プロジェクトは OAuth ID プロバイダーを使用して設定され、そのプロバイダーが更新トークンを発行する。この API を呼び出すと、プロバイダーの更新トークンを使用してログインセッションを更新しようとします。

どちらのシナリオでも、更新が成功しない場合があります。これが発生した場合、ユーザーはログアウトされます。

それ以外のすべてのシナリオ(この API が更新をサポートしない SAML または OAuth ID プロバイダーを使用して設定されたプロジェクトに対して呼び出された場合も含みます)では、更新は失敗し、ユーザーはログアウトされてホーム画面に戻ります。

認証がプロジェクト内に指定されていない場合は、この API を呼び出すと、Authentication Support エラーが返されます。

ユーザーが認証されていない場合は、認証が無効であるというエラーが返されます。

Viewer がオフラインであり、ログインを更新できない場合は、Network エラーが返されます。

認証設定を取得できない場合、デバイスの Viewer は、キャッシュ済みの認証設定を使用します。

注意:

これらの API 呼び出しで予期しないエラーが発生すると、「UNKNOWN_ERROR」コードがエラーコールバック内に返されます。

 

プロパティ – ユーザーエラー

cq.mobile.userError は列挙オブジェクトで、ユーザーメソッドのすべてのサポートされているエラーコードを定義します。

名前
cq.mobile.userError.UNKNOWN_ERROR
0
cq.mobile.userError.INVALID_ARGUMENT_ERROR
10
cq.mobile.userError.AUTHENTICATION_SUPPORT_ERROR
11
cq.mobile.userError.INVALID_AUTHENTICATION_STATE
12
cq.mobile.userError.NETWORK_ERROR
41
cq.mobile.userError.NETWORK_RATE_LIMIT_EXCEEDED_ERROR
42
cq.mobile.userError.UNAUTHORIZED
43

Entitlement API

使用可能性

このプラグインは、エンタイトルメントと購入に関連するメソッドを提供するグローバルエンタイトルメントオブジェクトを定義します。これは、deviceready イベントの終了後まで使用できません。

プロパティ - オファー

名前 コメント
productId String ポータルの「製品と購読」セクションに表示される製品/購読 ID。
label String ポータルの「製品と購読」セクションに表示される製品/購読名。ユーザーによって設定されない場合は null になります。
description String ポータルの「製品と購読」セクションに表示される製品/購読の詳細。ユーザーによって設定されない場合は null になります。
price String 対応するストアから返される価格。製品が無料の場合は null です。
offerType String "subscription" または "product" にします。

プロパティ - 購読情報

名前 コメント
subscriptionOffers Array 一連の Offer オブジェクト。ユーザーが有効な購読を利用している場合は空です。
subscriptionState Object SubscriptionState オブジェクト。

プロパティ - 購読状況

名前 コメント
isSubscriber
Boolean ユーザーがいずれかの時点で購読者であった場合は true。subscriptionState.isSubscribersubscriptionState.store.isSubscriber および subscriptionState.integrator.isSubscriber と同一です。
isActiveSubscriber
Boolean ユーザーが有効な購読を利用している場合は true。
store Object 製品ストアに対する購読状況を含む Store オブジェクト。
integrator Object エンタイトルメントインテグレーターに対する購読状況を含む Integrator オブジェクト。

プロパティ - ストア

名前 コメント
isSubscriber
Boolean ユーザーがいずれかの時点で購読者であった場合は true。
isActiveSubscriber
Boolean ユーザーが有効な購読を利用している場合は true。
expirationDate Number 有効期限以降のミリ秒単位のタイムスタンプ。この値は、(ストアまたはエンタイトルメントインテグレーターからの)購読に有効期限がない場合は null にできます。
subscriptionType String "allAccess" または "standard" にします。isSubscriber が true の場合にのみ有効です。
id String ストアでの購読製品の製品 ID。

プロパティ - インテグレーター

名前 コメント
isSubscriber
Boolean ユーザーがいずれかの時点で購読者であった場合は true。
isActiveSubscriber
Boolean ユーザーが有効な購読を利用している場合は true。
expirationDate Number 有効期限以降のミリ秒単位のタイムスタンプ。この値は、(ストアまたはエンタイトルメントインテグレーターからの)購読に有効期限がない場合は null にできます。
customData String 兄弟 isSubscriber が false の場合、customData は設定されません。isSubscriber が true の場合、設定できることとできないことがあります。customData はインテグレーターによって返されることがあります。アドビに対して透過的でユーザーに対してのみ意味のあるデータが含まれるようにするためです。

メソッド

名前 引数 応答 コメント
getSubscriptionInfo(success, error)

success:成功コールバック

error:エラーコールバック

成功した場合:SubscriptionInfo オブジェクト

このメソッドは、現在のパブリケーションおよびデバイスの購読情報を返します。1 分間に 60 回の API リクエストが作成された後、この API に対するそれ以降のリクエストは、最初のリクエストから 1 分が経過するまではエラーを返します。

デスクトップ Web Viewer は、この API をサポートせず、常にエラーを返します。

getOffers(collectionName, success, error)

collectionName:String - コレクションの名前

success: Function - 成功コールバック

error:Function - エラーコールバック

成功した場合:一連の Offer オブジェクト

失敗した場合:コードプロパティが入力されたエラー

collectionName はポータルの名前と一致する必要があります。

リクエストされたエンティティが見つからない場合、または制限付きで表示されない場合は、エラーが返されます。

リクエストされたエンティティにキャッシュされたオファーがある場合は返されます。それ以外の場合は、オファーを取得するためにエンタイトルメントサービスに対するネットワークリクエストが発生します。

エンタイトルメントサービスに対して 1 分間に 60 回のネットワークリクエストが作成された後、この API の結果に対するそれ以降のリクエストは、最初のリクエストから 1 分が経過するまではエラーを返します。

デスクトップ Web Viewer は、この API をサポートせず、常にエラーを返します。

purchaseOffer(productId, success, error)

productId:String - 購入のオファーの productId

success: Function - 成功コールバック

error: Function - エラーコールバック

成功した場合:購入リクエストが開始します

失敗した場合:エラーコードを呼び出します

このメソッドは購入リクエストを開始します。
restorePurchases(successCallback, errorCallback)

success:Function - 成功コールバック

error:Function - エラーコールバック

成功した場合:購入復元リクエストが開始します

失敗した場合:エラーコードを呼び出します

このメソッドは、ユーザーの以前の購入の復元を開始します。

1 分間に 5 回の API リクエストが作成された後、この API に対するそれ以降のリクエストは、最初のリクエストから 1 分が経過するまではエラーを返します。

エラー - エンタイトルメント

cq.mobile.entitlementError は列挙オブジェクトで、エンタイトルメントメソッドのすべてのサポートされているエラーコードを定義します。

名前
cq.mobile.entitlementError.UNKNOWN_ERROR 0
cq.mobile.entitlementError.INVALID_ARGUMENT_ERROR
10
cq.mobile.entitlementError.ENTITY_IMAGE_TYPE_NOT_SUPPORTED_FOR_ENTITY_ERROR 11
cq.mobile.entitlementError.INVALID_AUTHENTICATION_STATE 12
cq.mobile.entitlementError.NETWORK_ERROR 20
cq.mobile.entitlementError.NETWORK_RATE_LIMIT_EXCEEDED_ERROR 21
cq.mobile.entitlementError.ENTITY_IMAGE_ENTITY_NOT_FOUND_ERROR
40
cq.mobile.entitlementError.ENTITY_IMAGE_NETWORK_ERROR 41
cq.mobile.entitlementError.ENTITY_IMAGE_NOT_FOUND_ERROR 50
cq.mobile.entitlementError.ENTITY_NOT_FOUND_ERROR 61
cq.mobile.entitlementError.WRONG_ENTITY_TYPE_ERROR 71
cq.mobile.entitlementError.NO_MORE_ENTITY_PAGES_ERROR 72
cq.mobile.entitlementError.ENTITY_PAGE_OUT_OF_DATE_ERROR 73
cq.mobile.entitlementError.ENTITY_OUT_OF_DATE_ERROR 74
cq.mobile.entitlementError.ENTITY_SAVE_FAILURE 80
cq.mobile.entitlementError.ENTITY_SAVE_CANCELLED 81

変更履歴

2017 年 3 月 16 日

コレクションエンティティのダウンロードに関する API 情報を追加しました。

エンタイトルメントの購入に関する API 情報を追加しました。

2017 年 1 月 10 日

cq.mobile.application.isAppSearchEnabled と cq.mobile.application.isSocialSharingEnabled を追加しました(アプリケーションセクションを参照してください)

2016 年 8 月 9 日

getLocationContent を追加しました(コンテキストセクションを参照してください)

2016 年 6 月 30 日

setAuthToken を追加しました(ユーザーセクションを参照してください)

2016 年 6 月 23 日

オンデマンドサービスコレクション構造をトラバースする機能を追加しました。

  • バナーのサポートに伴いエンティティメタデータを更新しました(コンテキストタブを参照してください)。
  • 記事/バナー/コレクションエンティティをリクエストする getEntity() を追加しました(コンテキストタブを参照してください)。
  • コレクションの権利付与情報をリクエストする getEntitlementInfo() を追加しました(コンテキストタブを参照してください)。
  • コレクションの直接の子エンティティのリストをリクエストする getChildren() を追加しました(コンテキストタブを参照してください)。
  • getChildren() から返されるリストからエンティティの次のページをリクエストする getNextPage() を追加しました(コンテキストタブを参照してください)。
  • cq.mobile.context および cq.mobile.user で使用されるメソッドのエラーコードを定義する列挙オブジェクトを追加しました(コンテキストタブとユーザータブを参照してください)。

 

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー