iOS

Cordova環境におけるIMQA SDKを適用する方法を提供します。

1. SDKのインストール

1. <PROJECT-NAME>.xcworkspaceファイルを開きます。

2. iosフォルダの下にframeworksというフォルダを作成します。

3. 下記のリンクから希望するバージョンのフレームワークをインストールしてXcode上に、frameworksフォルダにフレームワークファイルを移しながらCopy Items If neededをチェックします。

4. プロジェクト設定でFrameworks、Libraries、and Embedded ContentにおいてフレームワークをすべてEmbed & Signに設定します。

2. SDKの設定

1. AppDelegate.mファイルから以下の2つをインポートします。

AppDelegate.m
#import <IMQAMPMAgent/IMQAMPMAgent.h>
#import <IMQACrashAgent/IMQACrash.h>

2. AppDelegate.mファイルで- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions関数の一番上に下記のコードを追加します。

AppDelegate.m
NSString* PROJECT_KEY = @"<PROJECT_KEY>";

IMQACrashConfiguration* crashConfig = [[IMQACrashConfiguration alloc] initWithApiKey:PROJECT_KEY];
[IMQACrash startWithConfiguration:crashConfig];

IMQAConfig* mpmConfig = [[IMQAConfig alloc] init:PROJECT_KEY];
[[IMQAMpm sharedInstance] runWithConfig:mpmConfig];

3. ビルドの後に実行した時、下記のようなログが確認されたら正常にインストールが完了します。

AppDelegate.m
[IMQACrash] [INFO] Sent session AC868F82-97E7-4DAA-A75B-E6E5CEB64F46

[IMQA] (1/4) Start tracking viewcontroller
[IMQA] (2/4) Start tracking network
[IMQA] (3/4) Start tracking resource
[IMQA] (4/4) Start tracking backtrace
[IMQA] (4/4) Complete setting IMQA MPM
[IMQA] IMQA MPM Version : <VERSION>

3. Cordovaの設定

1. HTMLの最上段にWebview Agentをインストールします。(インストールした後、ビルドは必須)

index.html
<!-- IMQA Webview Agent(1.1.3バージョン以下)です。  -->
<script type="text/javascript" src="https://imqawebviewagent.blob.core.windows.net/agent/webview-agent-1.1.2.js"
crossorigin></script>

// minファイルを適用したい場合
<script type="text/javascript" src="https://imqawebviewagent.blob.core.windows.net/agent/webview-agent-1.1.2.min.js"
crossorigin></script>
index.html
<!-- IMQA Webview Agent(1.1.3バージョン以上)です。  -->
<script type="text/javascript" src="https://cdn.imqa.io/agent/webview-agent-1.1.3.js"
crossorigin></script>

<script>
    ((w, c, _wv, _w, _wk, _mh, _b) => {        
       w[_wv](w); // WebViewエージェント実行関数
    })(window, 'imqaClientConfig', 'IMQAWebviewMain', 'IMQAWebMain', 'webkit', 'messageHandlers', 'ImqaBridge')
</script>

2. XcodeにおいてCordovaLib/Private/Plugins/CDVWebViewEngine/CDVWebViewEngine.mファイルを探します。

3. CDVWebViewEngine.mの上にMPM SDKをインポートします。

CDVWebViewEngine.m
#import <IMQAMPMAgent/IMQAMPMAgent.h>

4. - (void)pluginInitialize関数においてWKUserContentControllerを変更する部分を探して変更します。

CDVWebViewEngine.m
// existing code
WKUserContentController* userContentController = [[WKUserContentController alloc] init];
[userContentController addScriptMessageHandler:weakScriptMessageHandler name:CDV_BRIDGE_NAME];
// additional code
[userContentController addScriptMessageHandler:self name:@"ImqaBridge"];

5. - (void)userContentController:(WKUserContentController*)userContentController didReceiveScriptMessage:(WKScriptMessage*)message関数を探して変更します。

***必ずその関数の一番上に追加してください。***

CDVWebViewEngine.m
if([message.name isEqual: @"ImqaBridge"]) {
 [[IMQAMpm sharedInstance] saveWebviewPostMessage:(CDVViewController*)self.viewController :message.body];
}

Last updated