112 lines
4.7 KiB
Markdown
112 lines
4.7 KiB
Markdown
|
<h1 align="center">Hello Nexacro Android Webview</h1>
|
||
|
안드로이드 하이브리드 버전을 테스트 하기 위한 앱 입니다.
|
||
|
|
||
|
### 테스트 사전 단계
|
||
|
- 빌드된 *.aar 라이브러를 아래의 경로에 추가합니다.
|
||
|
```sh
|
||
|
Hybrid/example/HelloNexacroAndroid/app/libs/Acceleration-release.aar
|
||
|
|
||
|
Hybrid/example/HelloNexacroAndroid/app/libs/AudioPlayer-release.aar
|
||
|
|
||
|
Hybrid/example/HelloNexacroAndroid/app/libs/BluetoothLE-release.aar
|
||
|
|
||
|
Hybrid/example/HelloNexacroAndroid/app/libs/Camera-release.aar
|
||
|
|
||
|
Hybrid/example/HelloNexacroAndroid/app/libs/Contact-release.aar
|
||
|
|
||
|
Hybrid/example/HelloNexacroAndroid/app/libs/ExternalAPI-release.aar
|
||
|
|
||
|
Hybrid/example/HelloNexacroAndroid/app/libs/Geolocation-release.aar
|
||
|
|
||
|
Hybrid/example/HelloNexacroAndroid/app/libs/ImagePicker-release.aar
|
||
|
|
||
|
Hybrid/example/HelloNexacroAndroid/app/libs/LiteDB-release.aar
|
||
|
|
||
|
Hybrid/example/HelloNexacroAndroid/app/libs/Network-release.aar
|
||
|
|
||
|
Hybrid/example/HelloNexacroAndroid/app/libs/NexacroLib-release.aar
|
||
|
|
||
|
Hybrid/example/HelloNexacroAndroid/app/libs/Phone-release.aar
|
||
|
|
||
|
Hybrid/example/HelloNexacroAndroid/app/libs/Sms-release.aar
|
||
|
|
||
|
Hybrid/example/HelloNexacroAndroid/app/libs/Vibrate-release.aar
|
||
|
|
||
|
Hybrid/example/HelloNexacroAndroid/app/libs/XPush-release.aar
|
||
|
```
|
||
|
|
||
|
## 빌드에 필요한 추가 의존 라이브러리
|
||
|
- DeviceAPI 및 nexacro.aar 에서 사용 됩니다.
|
||
|
```sh
|
||
|
implementation "androidx.room:room-runtime:2.4.3"
|
||
|
implementation 'androidx.exifinterface:exifinterface:1.3.4'
|
||
|
implementation 'com.google.firebase:firebase-core:21.1.1'
|
||
|
implementation 'com.google.firebase:firebase-messaging:23.1.2'
|
||
|
implementation 'com.squareup.okhttp3:okhttp:4.10.0'
|
||
|
implementation 'org.slf4j:slf4j-api:1.7.36'
|
||
|
annotationProcessor "androidx.room:room-compiler:2.4.3"
|
||
|
|
||
|
implementation fileTree(dir: "libs", include: ["*.aar"])
|
||
|
```
|
||
|
|
||
|
## 테스트 방법
|
||
|
- Nexacro N Runtime for Android 와 거의 동일한 방법으로 구동합니다.
|
||
|
- NexacroActivity 클래스를 상속받은 MainActivity.java 의 onCreate 함수 안에서 deploy 된 주소를 입력합니다.
|
||
|
- 서버, 업데이트, 로컬 방식을 지원 합니다.
|
||
|
```sh
|
||
|
public class MainActivity extends NexacroActivity {
|
||
|
...
|
||
|
@Override
|
||
|
protected void onCreate(Bundle savedInstanceState) {
|
||
|
super.onCreate(savedInstanceState);
|
||
|
|
||
|
// 업데이트 or 서버 방식
|
||
|
setProjectURL("http://.../_android_/");
|
||
|
setBootstrapURL("http://.../_android_/start_android.json");
|
||
|
|
||
|
// 로컬 방식 (디플로이된 컨텐츠는 assets/archive 폴더에 위치 시킨다)
|
||
|
setBootstrapURL("file:///android_asset/archive/start_android.json");
|
||
|
}
|
||
|
...
|
||
|
}
|
||
|
```
|
||
|
|
||
|
## 코르도바 플러그인 추가 방법
|
||
|
- (개발중인) 코르도바 제네레이터를 사용합니다.
|
||
|
- 코르도바 플러그인 모듈이 생성됩니다.
|
||
|
- 넥사크로 프로젝트 하위 경로로 필요한 플러그인 소스가 복사되어 배치됩니다.
|
||
|
- 넥사크로 프로젝트에 배치된 소스가 앱 프로젝트에 복사됩니다.
|
||
|
- 코르도바 제네레이터가 하지 못하는 작업은 plugin.xml 정보를 바탕으로 아래와 같이 직접 수정합니다.
|
||
|
1. 넥사크로 plugin_config.xml 파일에 코르도바 플러그인을 다음과 같이 등록
|
||
|
```sh
|
||
|
<!-- plugin.xml 파일 정보를 바탕으로 plugin_config.xml 파일에 등록합니다. -->
|
||
|
|
||
|
plugin.xml
|
||
|
<platform name="android">
|
||
|
<config-file target="res/xml/config.xml" parent="/*">
|
||
|
<feature name="StatusBar">
|
||
|
<param name="android-package" value="org.apache.cordova.statusbar.StatusBar" />
|
||
|
<param name="onload" value="true" />
|
||
|
</feature>
|
||
|
<preference name="StatusBarOverlaysWebView" value="true" />
|
||
|
</config-file>
|
||
|
</platform>
|
||
|
|
||
|
==>
|
||
|
|
||
|
plugin_config.xml
|
||
|
<plugin name="StatusBar" class="org.apache.cordova.statusbar.StatusBar" onload="true"/>
|
||
|
<preference name="StatusBarOverlaysWebView" value="true" />
|
||
|
|
||
|
코르도바의 config.xml은 넥사크로의 plugin_config.xml 파일과 동일한 역할을 합니다.
|
||
|
```
|
||
|
2. 앱의 AndroidManifest.xml 에 권한 및 기타 정보 추가
|
||
|
- uses-permission, uses-feature
|
||
|
3. 플러그인의 종류에 따라서 이외의 작업이 있을수 있습니다.
|
||
|
4. 빌드.
|
||
|
|
||
|
## 프로젝트 구성 참고 사항
|
||
|
- notification을 사용하는 경우 (notification enable="true") firebase를 통해 google service 설정이 필요합니다.
|
||
|
- 테마에서 액션바를 제거하였습니다. (NoActionBar)
|
||
|
- AndroidManifest.xml 에서 필수적인 권한을 추가하였습니다.
|