ハイブリッド アプリケーション サポートの構成

デフォルトでは、iOS エージェントは iOS WKWebView をインストルメント化しますが、Ajax コールを収集して報告することはありません。この機能の概要と説明については、「ハイブリッド アプリケーションのサポート」を参照してください。

ハイブリッド アプリケーション サポートを無効にしたり、動作を変更したりするには、静的またはランタイム構成を設定します。次のセクションでは、ランタイム構成または静的構成のいずれかを使用して、ハイブリッドサポートのデフォルト設定を変更する方法を示します。

ハイブリッド アプリケーション サポートのランタイム構成

次のコード例では、JavaScript エージェントのインジェクションを無効にしています。インジェクションを無効にすると、アプリケーション内の WKWebView はインストルメント化されず、Ajax コールは報告されません。

ADEumAgentConfiguration *adeumAgentConfig = [[ADEumAgentConfiguration alloc] initWithAppKey: <#EUM_APP_KEY#>];
// Disable the JavaScript Agent Injection
adeumAgentConfig.jsAgentEnabled = NO;
[ADEumInstrumentation initWithConfiguration:adeumAgentConfig];

JavaScript エージェントのインジェクションはデフォルトで有効になっています。Ajax コールの収集とレポートも有効にするには、次のようにします。

ADEumAgentConfiguration *adeumAgentConfig = [[ADEumAgentConfiguration alloc] initWithAppKey: <#EUM_APP_KEY#>];
// Enable the collection and reporting of Ajax calls
adeumAgentConfig.jsAgentAjaxEnabled  = YES;
[ADEumInstrumentation initWithConfiguration:adeumAgentConfig];

ハイブリッド アプリケーション サポートの静的構成

次の場合には、静的構成を使用する必要があります。

  • 強制的に WKWebView や Ajax コールをインストルメント化する(ランタイム構成をオーバーライドする)
  • ハイブリッドサポートを無効にし、ランタイム構成をオーバーライドする
  • 自己ホストされた JavaScript 拡張ファイルに URL を設定する

次の表は、info.plist ファイルでサポートされているプロパティとデフォルト値を示しています。

プロパティデフォルト値説明
serverJsAgentEnabled true

クライアントがこのフラグに false を受け取ると、JavaScript エージェントは無効になります。したがって、WKWebView と Ajax リクエストはモニタされません。

インジェクションは、新しい WKWebView の作成時に発生します。このため、このフラグが false に設定されているときに WKWebView が作成された場合、その特定の WKWebView は、その後フラグが true に設定されてもインストルメント化されません。

ForceWebviewInstrumentation falsetrue に設定すると、iOS エージェントはランタイム構成に関係なく、JavaScript エージェントを WKWebView に挿入します。
ForceAjaxInstrumentation true true に設定すると、ランタイム構成に関係なく、Ajax オペレーションは常に収集および報告されます。
ADRUMExtUrlHttp

http://cdn.appdynamics.com

JavaScript エージェントは、基本 JavaScript エージェントと JavaScript エージェントの拡張という 2 つのコンポーネントで構成されています。基本 JavaScript エージェントは、モバイルエージェントのバイナリに組み込まれ、上記のルールに従って挿入されます。

初期化後、JavaScript エージェントは、これらのプロパティによって指定された URL から JavaScript エージェント拡張を取得します。

ADRUMExtUrlHttps https://cdn.appdynamics.com

構成例

次の info.plist の例では、強制的に WKWebView をインストルメント化(ランタイム構成をオーバーライド)しますが、Ajax リクエストの収集とレポートは強制されません。この構成では、JavaScript 拡張ファイルが取得される URL も設定されます。

<plist>
  <dict>
    ...
    <key>ADEUM_Settings</key>
    <dict>
      <key>ForceWebviewInstrumentation</key>
      <true/>
      <key>ForceAjaxInstrumentation</key>
      <false/>
      <key>ADRUMExtUrlHttp</key>
      <string>http://<your-domain>/adrum.cdn</string>
      <key>ADRUMExtUrlHttps</key>
      <string>https://<your-domain>/adrum.cdn</string>
    </dict>
    ...
 </dict>
</plist>