1. project의 build.gradle에 injector를 추가
project의 build.gradle에 injector를 추가 후 app의 gradle에 아래와 같이 라이브러리, ImqaBridge를 추가합니다.
Copy 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에 라이브러리를 추가
Copy //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 추가 예시)
Copy 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추가 예시)
Copy getWebView().getSettings().setJavaScriptEnabled(true);
io.imqa.mpm.network.webview.WebviewInterface imqaJavascript = new
io.imqa.mpm.network.webview.WebviewInterface();
getWebView().addJavascriptInterface(imqaJavascript, "ImqaBridge");
모피어스는 서버에서 모바일 페이지를 가져오는 방식이 아닌 모바일 내부로 static 파일을 내려놓는 방식입니다. 제공해 드리는 모피어스용 webview agent를 모든 페이지에 head의 최상단에 위치하도록 합니다. 모피어스 구조상 cdn 을 사용하지 마시고 직접 리소스를 삽입하시기 바랍니다.