1. projectのbuild.gradleにinjectorを追加
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'
}
}
//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の追加
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");
Morpheusはサーバーからモバイルページを読み込む方式ではなく、モバイル内部にstaticファイルを置く方式です。ご提供するMorpheus用webview agentをすべてのページにおいてheadの一番上に位置するようにします。Morpheusの構造上、cdnを使用せず、直接リソースを挿入してください。