Android

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

IMQA MPMインストールガイドにより、IMQA agentコードを適用した後、この文書の内容を追加で適用してください

1. projectのbuild.gradleにinjectorを追加

projectのbuild.gradleにinjectorを追加した後、appのgradleに以下のようにライブラリ、ImqaBridgeを追加します。

従来のガイドとは違って、pluginをapplyしません。

ファイルをアップデート後にGradleファイルを同期させる必要があります。

build.gradle
buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.0.1' 
			  //お客様の環境に合うgradle tool
        ....
        classpath 'io.imqa:imqa-mpm-injector:2.25.6'

    }
}

2. appのgradleにライブラリを追加

AndroidManifest.xml
//apply plugin: 'io.imqa'
//従来のガイドとは違って、pluginをapplyしません。

dependencies {
    ...
    implementation 'io.imqa:imqa-core:2.27.5'
    implementation 'io.imqa:imqa-mpm-client:2.27.9'
    implementation 'io.imqa:imqa-crash-client:2.27.5'
		//最新のIMQA SDKの追加
}

//dependencyの下に以下のようなコードを追加
io.imqa.IMQAPlugin imqaPlugin = new io.imqa.IMQAPlugin()
imqaPlugin.init(project)
new io.imqa.injector.GJavacAction(project.name).setConfiguration(project)
android.applicationVariants.all { variant ->
    variant.javaCompile.doLast { task ->
        new io.imqa.injector.CompileAction(
                io.imqa.injector.util.BuildOption.BUILD_LOCATION_TYPE.javacClasses,
                project.name,
                io.imqa.injector.GJavacAction.convertBuildType(variant.getBuildType()),
                io.imqa.injector.GJavacAction.makeFlavor(variant.getBuildType().name,
                        variant)
        ).execute(task)
    }
}

3. 作成される各webviewオブジェクトにImqaBridgeの追加

IMQABridgeの追加方法は、Morpheusを利用して開発されるケースによって異なる場合があります。

webviewオブジェクトにおけるImqaBridgeの追加例
mWebView.addJavascriptInterface(new AndroidBridge(), AndroidBridge.KEY_NAME);
.
.
.
io.imqa.mpm.network.webview.WebviewInterface imqaJavascript = new
        io.imqa.mpm.network.webview.WebviewInterface();
mWebView.addJavascriptInterface(imqaJavascript, "ImqaBridge");
継承構造で隠れたwebviewオブジェクトにおけるImqaBridgeの追加例
getWebView().getSettings().setJavaScriptEnabled(true);
io.imqa.mpm.network.webview.WebviewInterface imqaJavascript = new
		io.imqa.mpm.network.webview.WebviewInterface();
getWebView().addJavascriptInterface(imqaJavascript, "ImqaBridge");

* Webview Agentの登録

Morpheusはサーバーからモバイルページを読み込む方式ではなく、モバイル内部にstaticファイルを置く方式です。ご提供するMorpheus用webview agentをすべてのページにおいてheadの一番上に位置するようにします。Morpheusの構造上、cdnを使用せず、直接リソースを挿入してください。

Last updated