機械翻訳について

7 iOSアプリケーション

あなたがiOSアプリの開発者であれば、Oracle Mobile Cloud Service (MCS)がiOSを提供するクライアントSDKを使用できます。 このSDKはMCSによる認証を簡素化し、MCSプラットフォームAPI用のObjective-Cラッパー・クラスを提供します。

iOS用のSDKの取得

iOS向けのMCSクライアントSDKを入手するには、Oracle Technology Networkの「MCSダウンロード・ページ」をご覧ください。

iOS SDKの内容

iOS SDKには次のアイテムが含まれています。

  • Documentation - Webブラウザベースのドキュメント(html.zip)と、Xcode(oracle.mobile.cloud.Mobile_Client_SDK.docset.zip)の状況依存ヘルプの参照とアクセスのためのドキュメント・セットが含まれています。 html.zipを使用するには、ファイルをunzipし、index.htmlからメイン・ページを参照します。 docsetを使用するには、通常は~/Library/Developer/Shared/Documentation/DocSetsのようなXcodeドキュメント・セットの通常のロケーションにファイルをunzipします。ここで、~はホーム・ディレクトリです。

    このフォルダには、アプリに追加してモバイル・バックエンドの構成詳細を入力する必要のあるOMC.plistファイルのサンプル・コピーも含まれています。

  • release-iphoneos - 静的ライブラリとヘッダー・ファイルのバージョンをリリースします。 SyncStore初期データも含まれています。 静的ライブラリは、armv7*コードを含み、iPhone Simulatorと実デバイスの両方をサポートするUniversal (fat)バイナリです。 次の静的ライブラリが含まれています。

    • libOMCCore.a - すべてのiOSアプリケーションで共有されるCoreティック・ライブラリ・ファイル。 他のすべてのライブラリで必要な共通ライブラリが含まれています。

    • libOMCAnalytics.a - アナリティクスの静的ライブラリ・ファイル。コードにイベントを挿入し、アナリティクス・コンソールから収集して解析することができます。

    • libOMCLocation.a - MCSに登録されているロケーション・デバイスと、関連付けられている場所とアセットについての詳細情報にアクセスできるロケーション・ライブラリ。

    • libOMCNotifications.a - 通知静的ライブラリ・ファイル。モバイル・バックエンドから送信された通知を受け取るようにアプリケーションを設定できます。

    • libOMCStorage.a - Storage静的ライブラリ・ファイル。モバイル・バックエンドで設定されたストレージ・コレクションにアクセスするためのコードを記述できます。

    • libOMCSynchronization.a - アプリケーションを実行しているデバイスがネットワークから切断されたときにアプリケーション・データをキャッシュし、ネットワーク接続が再確立されたときにデータを同期させるデータ・オフライン・スタティック・ライブラリ・ファイル。

  • thirdParty - アイデンティティ管理(IDM)ライブラリの静的ライブラリ(libIDMMobileSDK.a)、ヘッダー、およびリソース文字列。

  • mcs-tools.zip - MCSカスタム・コード・テスト・ツール。アプリのモバイル・バックエンドに関連付けられたカスタムAPIをデバッグするためのコマンドライン・ツール・セットです。 詳細な手順は、zipに含まれるREADMEファイルにあります。

iOSアプリの開発の前提条件

アプリの開発を始める前に、iOS SDKフレームワークの追加、構成の変更などの基本的な構成を行う必要があります。

前提を次に示します。

  • 開発環境としてXcodeに精通していること。 不慣れな場合には、https://developer.apple.com/xcode/を参照してください。

  • すでにAppleから次のものを手に入れました:

    • Apple Developerアカウント。

    • MacまたはiPad(つまり、アプリを開発しようとしているマシン上)にインストールされた一意のセキュアな証明書。

    • アプリケーションID。これは、Xcode内でアプリケーションのバンドル識別子として使用します。

    • プロビジョニング・プロファイル。 クライアントSDKから通知静的ライブラリをインストールし、iOSアプリで通知を受け取る場合は、プロビジョニング・プロファイルで通知を有効にする必要があります。

      まだこれらを行っていない場合は、http://developer.apple.comにあるiOS開発者用ドキュメントを参照してください

注意:

SwiftアプリケーションでクライアントSDKを使用することもできます。 iOS SDKを使用したSwiftアプリケーションの記述を参照してください。

iOSアプリへのSDKの追加

  1. ダウンロード・ファイルoracle_mobile_ios_sdk-{n}.zip(ここで、{n}はSDKのバージョン番号)を、マシン上のどこかのディレクトリに解凍します。

  2. zipのコンテンツをXcodeプロジェクト・ナビゲータにドラッグ・アンド・ドロップします。

    • 必要に応じて、「Copy items」を選択します。

    • 「Create Groups」を選択します。

    • 「Finish」をクリックします。

    特定のライブラリの.aファイルがXcodeのアプリケーション開発ツリーにコピーされると、対応するプラットフォームAPIがSDK呼び出しを通じてアプリケーションで使用できます。 この時点で、SDKのすべての静的ライブラリがアプリで使用可能になります。 ただし、Identity Managementライブラリが正常に動作するように、次のステップを完了する必要があります。

  3. プロジェクトのターゲットを選択して、 「Build Phases」タブを選択し、「Link Binary with Libraries」を開いて + ボタンをクリックし、次のフレームワークを追加します。

    • SystemConfiguration.framework

    • Security.framework

    • CoreLocation.framework

  4. 「Other Linker Flags」設定に -ObjC フラグを追加します。

  5. 解凍したzipのDocumentationフォルダを展開し、OMC.plistファイルをコピーして、アプリケーションのメイン・アプリケーション・バンドルのルートに配置します。

  6. モバイル・バックエンドの環境詳細を入力します。 iOS用のSDKプロパティの構成を参照してください。

  7. Xcode 7以上を使用している場合、HTTPSを介したリモート通信を強制するアプリケーション・トランスポート・セキュリティ(ATS)ポリシーを考慮する必要があります。

    開発目的でのみ、アプリのInfo.plistファイルに次のキーを追加して、アプリのATSポリシーを無効にします。

    <key>NSAppTransportSecurity</key> 
    <dict>
     <key>NSAllowsArbitraryLoads</key>
     <true/> 
    </dict>

    注意:

    この設定は本番で使用しないでください。 アプリに最適なセキュリティを実現するために、AppleのNSAppTransportSecurityのドキュメントをよく読み、特定のドメインに対してATSを無効にし、それらのドメインに適切なセキュリティ緩和を適用するためのAppleの推奨事項に従ってください。

iOS SDKの相互依存性

クライアントSDKはモジュール式であるため、アプリケーションに必要なライブラリだけをパッケージ化することができます。 ただし、次の依存関係に注意してください。

  • すべてのアプリは、libOMCCore.aティック・ライブラリ・ファイルを持っている必要があります。

  • あなたのアプリがlibOMCStorage.aを使用する場合は、lilbOMCSynchronization.aも含める必要があります。

  • あなたのアプリがlilbOMCSynchronization.aを使用する場合、初期化データを含むSyncStore.momdフォルダも含める必要があります。

  • あなたのアプリがlibOMCCxAEngagement.aを使用する場合は、libOMCCxAAnalytics.aも含める必要があります。

iOS用のSDKプロパティの構成

iOSアプリでSDKを使用するには、アプリにOMC.plist構成ファイルを追加し、モバイル・バックエンドの環境詳細を入力する必要があります。 同様に、SDKクラスはこの情報を使用して、モバイル・バックエンドにアクセスし、APIに対して行われるRESTコールのHTTPヘッダーを構築します。

アプリのメイン・バンドルのルートに構成ファイルをパッケージします。

次に、OMC.plistファイルの内容の例を示します。 要素の階層に注意してください。

同じ例のソース・コードを次に示します。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"
<plist version="1.0">
<dict>
  <key>mobileBackends</key>
  <dict>
    <key>FixItFast_Customer</key>
    <dict>
      <key>default</key>
      <true/>
      <key>baseURL</key>
      <string>https://fif.cloud.oracle.com</string>
      <key>appKey</key>
      <string>ebfbc8ea-9173-442b-8a5e-2fae63c64422</string>
      <key>authorization</key>
      <dict>
        <key>authenticationType</key>
        <string>OAuth</string>
        <key>OAuth</key>
        <dict>
          <key>tokenEndpoint</key>
          <string>https://oam.oracle.com/oam/oauth2/tokens</string>
          <key>clientID</key>
          <string>ddb7ff5a-0d86-4b4a-8164-ddad03734249</string>
          <key>clientSecret</key>
          <string>pFmzazXzNTBNVDyraQs7</string>
        </dict>
      </dict>
    </dict>
  </dict>
  <key>logLevel</key>
  <string>debug</string>
</dict>
</plist>

OMC.plistファイルの主要エントリを次に示します。 必要な環境詳細は、モバイル・バックエンドの「Settings」および「Clients」ページから取得できます。

  • mobileBackends - FixItFast_Customerなど、モバイル・バックエンドのネストされたディクショナリを含むディクショナリ・エントリです。 (アプリでOMCMobileBackendを呼び出す場合、そのエントリの値をパラメータとしてOMCMobileBackendManagerに指定する必要があります。) 同様に、このエントリにはappKeybaseURLauthenticationTypemobileBackendIDanonymousKeyおよびオプションでnetworkConnectionTimeoutのエントリが含まれます。 次の例を参照してください。

  • baseURL - アプリケーションがモバイル・バックエンドに接続するために使用するURLです。

  • appKey - MCSでクライアントとして登録する際にアプリに割り当てられる一意の文字列であるアプリケーション・キーです。 MCSでアプリをクライアントとして登録する方法を参照してください。 アプリをMCSにクライアントとしてまだ登録していない場合には、このエントリのプレースホルダ値を割り当ててください。

  • networkConnectionTimeout - (オプション)APIコールのネットワーク・タイムアウト(秒)です。 ネットワーク・パフォーマンス・チューニングを行う必要がある場合に、このプロパティを追加できます(ただし、注意して使用する必要があります)。 アプリの応答の問題は、アプリの設計自体で対処した方がよい可能性があります。 デフォルトのタイムアウトは60秒です。
  • logLevel - アプリケーション・コンソールに表示されるSDKロギングの量を決定します。 デフォルト値はerrorです。 他の可能な値(詳細レベルの増加)は、warninginfo、およびdebugです。 値をnoneに設定することもできます。

  • logHTTPRequestBody - trueに設定すると、SDKはMCSに対するリクエストのHTTPおよびHTTPSヘッダーおよび本文もログに記録します。

  • logHTTPResponseBody - trueに設定すると、SDKはMCSからのレスポンスのHTTPおよびHTTPSヘッダーおよび本文もログに記録します。

  • authorization - このキーを使用して、アプリケーションの使用する認証の種類を定義し、必要な資格証明を指定します。 authorizationキーの内容とサブ要素は、認証のタイプによって異なります。

    • authenticationType - モバイル・アプリケーションで使用される認証メカニズムのタイプを定義します。 可能な値は、OAuth(OAuth Consumerの場合)、basic(HTTP Basicの場合)、SSOSSOTokenExchangeおよびFacebookです。 次の説明にあるように、サポートされている種類の各認証にディクショナリおよび必要な資格証明を含めます。

    • offlineAuthenticationEnabled - trueに設定した場合、オフライン・ログインが許可されます。 オフライン・ログインはOAuthではサポートされていないため、このキーは無視されます。

OAuthコンシューマ

OAuthの場合、authenticationTypeプロパティの値をOAuthに設定し、モバイル・バックエンドによって提供されたOAuth資格証明を入力します。
  • tokenEndpoint - アプリケーションがその認証トークンを取得するためにアクセスするOAuthサーバーのURLです。

  • clientID - モバイル・バックエンドに最初に作成される際に、すべてのアプリケーションに割り当てられる一意のクライアント識別子です。

  • clientSecret - モバイル・バックエンドに最初に作成される際に、すべてのアプリケーションに割り当てられる一意の秘密の文字列です。

結果として得られるauthorizationプロパティは、次のようになります:

<key>authorization</key>
<dict>
    <key>authenticationType</key>
    <string>oauth</string>
      <key>OAuth</key>
      <dict>
        <key>tokenEndpoint</key>
        <string>https://oam.oracle.com/oam/oauth2/tokens</string>
        <key>clientID</key>
        <string>ddb7ff5a-0d86-4b4a-8164-ddad03734249</string>
        <key>clientSecret</key>
        <string>pFmzazXzNTBNVDyraQs7</string>
      </dict>
 </dict>

SSO

SSOの場合、authenticationTypeプロパティの値をSSOに設定し、モバイル・バックエンドによって提供されたOAuth資格証明を入力します。 (tokenEndpointでは、モバイル・バックエンドのOAuthトークン・エンドポイントを使用します。)

結果として得られるauthorizationプロパティは、次のようになります:

<key>authorization</key>
<dict>
    <key>authenticationType</key>
    <string>SSO</string>
		<key>SSO</key>
		<dict>
      <key>tokenEndpoint</key>
      <string>https://oam-server.oracle.com/oam/oauth2/tokens</string>
      <key>clientID</key>
      <string>ddb7ff5a-0d86-4b4a-8164-ddad03734249</string>
      <key>clientSecret</key>
      <string>pFmzazXzNTBNVDyraQs7</string>
    </dict>
</dict>

サードパーティ・トークンを使用したSSO

サードパーティ・トークンを使用したSSOの場合は、authenticationTypeSSOTokenExchangeに設定し、適切な資格証明を入力する必要があります。 また、トークン発行者をどのように統合したかに応じて、モバイル・バックエンドが提供する認証資格証明を記入する必要があります。

JWTトークンを使用していて、MCSのポリシーで構成を登録してトークン発行者を統合した場合は、モバイル・バックエンドのHTTP基本資格証明をネストし、モバイル・バックエンドのOAuth資格証明を別のキーとして含める必要があります。 結果として得られるauthorizationプロパティは、次のようになります:

<key>authorization</key>
<dict>
  <key>authenticationType</key>
  <string>SSOTokenExchange</string>
  <key>SSOTokenExchange</key>
  <dict>
    <key>mobileBackendID</key>
    <string>ddb7ff5a-0d86-4b4a-8164-ddad03734249</string>
    <key>anonymousKey</key>
    <string>UFJJTUVfREVDRVBUSUNPTl9NT0JJTEVfQU5PTllNT1VTX0FQUElEOnZrZWJxUmwuamEwbTdu</string>
  </dict>
  <key>OAuth</key>
  <dict>
    <key>tokenEndpoint</key>
    <string>https://p2mob1813rc1f.identity.dc1.c9dev2.oraclecorp.com/oam/oauth2/tokens</string>
    <key>clientID</key>
    <string>c437c1ed-fef0-4e88-802c-b85525fa0d6d</string>
    <key>clientSecret</key>
    <string>MtHoeHcRrWlDLiKcHJC8</string>
	</dict>
</dict>

証明書をMCSにアップロードしてIdPトークン発行者を統合した場合は、モバイル・バックエンドのHTTP基本資格証明をネストする必要があります。 結果として得られるauthorizationプロパティは、次のようになります:

<key>authorization</key>
<dict>
    <key>authenticationType</key>
    <string>SSOTokenExchange</string>
    <key>SSOTokenExchange</key>
    <dict>
      <key>mobileBackendID</key>
      <string>ddb7ff5a-0d86-4b4a-8164-ddad03734249</string>
      <key>anonymousKey</key>
      <string>UFJJTUVfREVDRVBUSUNPTl9NT0JJTEVfQU5PTllNT1VTX0FQUElEOnZrZWJxUmwuamEwbTdu</string>
    </dict>
</dict>

HTTP Basic

HTTP Basic認証の場合は、authenticationTypeプロパティの値をbasicに設定し、モバイル・バックエンドにより提供されるHTTP Basic資格証明を入力します。
  • mobileBackendID - 特定のモバイル・バックエンドに割り当てられた一意の識別子です。 アプリケーションからMCSへのすべてのRESTコールで、適切なモバイル・バックエンドに接続するためにHTTPヘッダーで渡されます。 プラットフォームAPIを呼び出すときに、SDKはmobileBackendIDヘッダーの構成を処理します。

  • anonymousKey - HTTP Basic認証を使用する場合、ログインを必要としないAPIへのアクセスをアプリに許可する一意の文字列です。 このシナリオでは、ユーザー名およびパスワードの組合せのかわりに匿名のキーがMCSに渡されます。

また、offlineAuthenticationEnabledプロパティをtrueに設定することで、基本認証のオフライン・ログインを有効にすることもできます。

結果として得られるauthorizationプロパティは、次のようになります:

<key>authorization</key>
<dict>
    <key>authenticationType</key>
    <string>Basic</string>
    <key>offlineAuthenticationEnabled</key>
    <true/>
    <key>Basic</key>
    <dict>
      <key>anonymousKey</key>
      <string>UFJJTUVfREVDRVBUSUNPTl9NT0JJTEVfQU5PTllNT1VTX0FQUElEOml6LmQxdTlCaWFrd2Nz</string>
      <key>mobileBackendID</key>
      <string>4fb9cabd-d0e2-40f8-87b5-d2d44cdd7c68</string>
    </dict>
</dict>

iOSアプリへのモバイル・バックエンドの構成のロード

iOS SDKを使用してMCS APIへのコールを正常に完了するには、アプリのOMC.plistファイルからモバイル・バックエンドの構成をロードする必要があります。 これを行うには、OMCMobileBackendクラスを使用します:

/**
 * Returns the mobile backend named "FixItFast_Customer" that is configured in the OMC.plist file
 */
- (OMCMobileBackend *) myMobileBackend{
    
    return [[OMCMobileBackendManager sharedManager] mobileBackendForName:@"FixItFast_Customer"];
    
}

iOS用SDKを使用した認証およびログイン

ここでは、iOSアプリでMCSによる認証に使用できるいくつかのメソッドを示します。 示されているコードはいずれもOMCAuthorization.hクラスを使用し、次のインポートに依存します。

#import "OMCCore/OMCAuthorization.h"
#import "OMCCore/OMCMobileBackend.h"
#import "OMCCore/OMCMobileBackendManager.h"

OAuthコンシューマおよびHTTP Basic

ユーザー名とパスワードを使用したユーザー・ログインの処理に、次のメソッドを使用できます。

- (void) authenticate:(NSString *)userName
             password:(NSString *)password
      completionBlock: (OMCAuthorizationAuthCompletionBlock) completionBlock;

このメソッドはMCSへの接続を切断し、ユーザー名とパスワードをiOSキーチェーンから消去します。

-(void) logout: (OMCAuthorizationLogoutCompletionBlock) completionBlock;

SSO

エンタープライズSSOを介したログインを許可するアプリの場合は、次を使用します。

-(void) authenticateSSO: (UIViewController*) presentingViewController
           clearCookies: (BOOL) clearCookies
        completionBlock:(OMCAuthorizationAuthCompletionBlock) completionBlock;

サードパーティ・トークンを使用したSSO

まず、使用するアプリケーションにサードパーティ・トークン発行者からのトークンを取得する必要があります。 トークンの取得方法は、発行者によって異なります。 MCSでサードパーティのトークンを取得し、アイデンティティ・プロバイダを構成する方法の詳細については、「サードパーティのSAMLトークンとJWTトークン」を参照してください。

トークンを取得したら、認可エージェントを初期化し、認可コールでトークンを使用します。

-(void) authenticateSSOTokenExchange:(NSString*) token
                    storeAccessToken:(BOOL) storeToken
                     completionBlock:(OMCAuthorizationAuthCompletionBlock) completionBlock;

-(NSError*) authenticateSSOTokenExchange:(NSString*) token
                        storeAccessToken:(BOOL) storeToken;

サードパーティのトークンを使用するSSO - ログインしたまま

また、アプリケーションを終了して再起動しても、ユーザーをログイン状態に保つようにアプリケーションをコーディングすることもできます。

authenticateSSOTokenExchangeメソッドで、storeAccessTokenYESに設定されている場合、トークンはセキュア・ストアに保存され、トークンが期限切れになるまでユーザーはログインしたままになります。

アプリの起動シーケンスでloadSSOTokenExchange()メソッドを使用して、キー・チェーンからトークンを読み込むことができます。 (トークンを取得できない場合、メソッドはNOを返します)。

保存されたトークンをロードしようとするコードがあります。失敗した場合は、認証プロセスを再開します:

OMCAuthorization* auth;
if ( [auth loadSSOTokenExchange] ){
	NSLog(@"## Token already found, login skipped.");
    ...
}
else{
	[auth authenticateSSOTokenExchange:thirdPartyToken
				  storeAccessToken:YES
				   completionBlock:^(NSError * _Nullable error) {
					   
					   if( error ){
						   //Show error popup
					   }
					   else{
							// Login success.
							...
					   }
				   }];
}

トークンをセキュア・ストアに保存すると、そのトークンはアプリが元々使用していたモバイル・バックエンドに関連付けられたままになります。 したがって、別のモバイル・バックエンド(またはモバイル・バックエンド・バージョン)を使用するようにアプリケーションが更新されている場合は、保存したトークンを消去して(clearSSOTokenExchangeを使用して)再認証する必要があります。

注意:

トークン交換によって取得された格納されたトークンのデフォルトの有効期限は6時間です。 この時間は、Security_TokenExchangeTimeoutSecsポリシーを変更することで調整できます。

iOS用のSDKを使用したプラットフォームAPIの呼出し

モバイル・バックエンドの構成情報がアプリにロードされると、iOSコア・ライブラリのクラスに基づいてSDKクラスを呼び出すことができます。

iOSコア・ライブラリ(libOMCCore.a)は、その他すべてのiOSライブラリで共通の3つのパブリック・インタフェースを提供します。

  • OMCMobileBackendManager

  • OMCMobileBackend

  • OMCServiceProxy

SDKのルート・クラスはOMCMobileBackendManagerです。 OMCMobileBackendManagerのインスタンスは、OMCMobileBackendオブジェクトを1つ以上管理します。 OMCMobileBackendオブジェクトは、アプリケーションとそれに関連するモバイル・バックエンド間(プラットフォームAPIおよび定義したあらゆるカスタムAPIへのコールを含む)の接続性、認証およびその他のトランザクションの管理に使用されます。 同様に、OMCMobileBackendインスタンスはOMCServiceProxyのインスタンスを管理します。 これらのインスタンスは、MCSのプラットフォーム・サービス(Analytics、通知など)に対応します。

各モバイル・バックエンドに関する必要な情報(認証情報に加えてモバイル・バックエンド名とID)をアプリのOMC.plistファイルから取得します。

次に、APIを呼び出すためにこれらのクラスを使用する例を示します。

//Get mobile backend, here "FixItFast_Customer" is your backend name from the OMC.plist configuration.
OMCMobileBackend* mbe = [[OMCMobileBackendManager sharedManager] mobileBackendForName:@"FixItFast_Customer"];

//Authenticate with your credentials; if returns nil, then authenticated successfully.
NSError* error = [mbe.authorization authenticate:@"username" 
                                        password:@"password"];
//Get analytics client
OMCAnalytics* analytics = [mbe analytics];

//Get storage client
OMCStorage* storage = [mbe storage];

//Get notifications client
OMCNotifications* notifications = [mbe notifications];

必要なヘッダーにアクセスして前述のコードをコンパイルするには、次のヘッダーをコードにインポートする必要があります。

#import "OMCMobileBackend.h"
#import "OMCMobileBackendManager.h"
#import "OMCAuthorization.h"
#import "OMCAnalytics.h"
#import "OMCMobileBackend+OMC_Analytics.h"
#import "OMCStorage.h"
#import "OMCMobileBackend+OMC_Storage.h"
#import "OMCNotifications.h"
#import "OMCMobileBackend+OMC_Notifications"

注意:

iOS用のMCS SDKで使用されるObjective-Cで記述されたメソッドもSwiftにマップできます。 詳細は、「モバイル・クライアントSDKを使用したSwiftアプリケーションの記述」を参照してください。

iOS用のSDKを使用したカスタムAPIの呼出し

SDKは、MCSのカスタムAPIの呼出しを簡略化するためのOMCCustomCodeClientクラスを提供します。 リクエスト・ペイロードがJSONまたは空であり、レスポンス・ペイロードがJSONまたは空であるエンドポイントで、RESTメソッド(GET、PUT、POSTまたはDELETE)を呼び出すことができます。

リクエスト・ペイロードがJSONまたは空であり、レスポンス・ペイロードがJSONまたは空であるエンドポイントで、このクラスを使用してRESTメソッド(GET、PUT、POSTまたはDELETE)を呼び出します。

また、メソッド呼び出しが完了したときに呼び出される完了ハンドラを提供できます(つまり、ハンドラは非同期に実行されます)。

完了ハンドラを設定すると、それがメソッド呼び出しの完了時にUI (メイン)スレッドで呼び出されるため、UI項目を更新できるようになります。 補完ブロックには、JSONオブジェクトのフォーマット固有のデータ、つまりNSDictionaryまたはNSArrayが含まれます。 完了ブロックは、データやエラー(HTTPまたはシステム)を返す場合に使用します。

Authorization(ユーザーは認証済とします)など必要なMCSヘッダーはすべて、リクエストに自動的に挿入されます。

OMCCustomCodeClientの使用方法は次のようになります:

#import "OMCCore/OMCMobileBackend.h"
#import "OMCCore/OMCCustomCodeClient.h"
...
 
// A GET, PUT, POST, or DELETE method may be specified here - sent or returned JSON data object may be nil as appropriate.
OMCMobileBackend *backend = ...
OMCCustomCodeClient *ccClient = backend.customCodeClient;
NSDictionary *jsonPayload = @{@"myKey", @"myValue"};
[ccClient invokeCustomRequest: @"API2/endpoint2" 
                       method: "@PUT" 
                         data: jsonPayload, 
                   completion: ^(NSError* error,
                                NSHTTPURLResponse *response,
                                id responseData) {
        // error will be nil if no problems occurred, otherwise it will contain the error object
        // response will be complete HTTP response
        // response data will be Map or Array for JSON object if success or nil if error
    }];

ビデオ: モバイル・クラウドと連携する既存のiOSアプリケーションの構成

モバイル・バックエンドを使用してMCSプラットフォームAPIを呼び出すようにiOSアプリケーションを構成する方法のデモンストレーションについては、次のビデオをOracle Mobile PlatformのYouTubeチャネルでご覧ください: