NetFUNNEL Androidエージェントは、アプリケーション内で出力されるWeb-Viewで発生するトラフィックをコントロールしてサービスインフラを保護し、訪問者にスムーズなユーザー体験を提供します。
- サービスとは? : NetFUNNELと連動してトラフィックコントロールをかけるための対象ウェブサイト(URL)を意味します。
ネットファーネルAndroidエージェント機能ご紹介
NetFUNNEL Androidエージェントは、構築したモバイルアプリケーション内NetFUNNELに接続されたメインドメインのURLが呼び出された場合のトラフィックコントロールをサポートするライブラリです。
エージェントが担当する詳細機能は以下の通りです。
- NetFUNNELと連動したメインドメインと center API / NetFUNNELサーバー間の通信を担当し、アプリケーション内で登録されたURLが呼び出される場合、トラフィックをコントロールします。
- EUM(end user monitoring)機能のためのデバイス状態情報と設定した区間の所要時間に対するデータ収集を行います。NetFUNNELに要求すると、自動的にデータを収集しますが、APIを直接使用して目的の区間を測定することができます。
要求事項
- NetFUNNEL AndroidエージェントはJAVA 1.8以上、Andorid SDK 23(Marchmallow)からサポートします。
- ライブラリ gradle dependencyにcomplieOnly 'com.squareup.okhttp3:okhttp:3.0.0' 内容 が含まれているので、クラッシュにご注意ください。
NetFUNNEL Androidエージェントのインストール
基本的な適用事項
1. ライブラリをダウンロードしてGradleに追加してください。
- Sample code
implementation files('libs/surffy-agent_aos_latest.aar')
2. nflnit関数を使用して NetFUNNEL を初期化させてください。
- Kotlin
fun nfInit() {
/*
* 1. AppName, 2. tenant API Server URL, 3. tenant Netfunnel Server URL, 4. netfunnel setting server URL,
* 5. eum Server URL, 6. activity(waiting page on this activity), 7. context
*/
Netfunnel.Init(
"MyAppName",
"{tenant API URL}",
"{tenant NF URL}",
"{nf-setting URL}",
"{eum URL}",
this,
this.baseContext
)
}
- Java
public void nfInit() {
/*
* 1. AppName, 2. tenant API Server URL, 3. tenant Netfunnel Server URL, 4. netfunnel setting server URL,
* 5. eum Server URL, 6. activity(waiting page on this activity), 7. context
*/
Netfunnel.Init(
"MyAppName",
"{tenant API URL}",
"{tenant NF URL}",
"{nf-setting URL}",
"{eum URL}",
this,
this.getBaseContext()
);
}
NetFUNNEL エージェントの適用方法
Android エージェントをインストールした後、実際の動作のためのエージェントを適用する場合、NetFUNNEL の使用環境によって下記の方法の中から適切な適用方法を選択して適用する必要があります。
- NetFUNNELを適用したいポイントに直接コードを挿入するAPI方式
- URLリクエストを自動的に検知してNetFUNNELを適用する自動化方式
API方式の適用方法
1. NetFUNNEL機能に対する応答を定義したAgentinterfaceを実装します。
- Kotlin
var myInterface = object : AgentInterface() {
override fun onSuccess() {
// call when user allow access or netfunnel server response error
object : Thread() {
override fun run() {
/*
* to do what you want to after using netfunnel
*/
}
}.start()
}
override fun onCancel(_cancelURL: String) {
// call when user cancel
object : Thread() {
override fun run() {
}
}.start()
}
override fun onFail() {
/*
* activity is null, internet not connected
*/
}
override fun nfLog(_message: String) {
/*
* this function get the process log about library.
* if you want to collect or check process, use this
* like DLog.d(_message)
*/
}
}
- Java
AgentInterface myInterface = new AgentInterface() {
@Override
public void onSuccess() {
// This function is where the operation is implemented after the wait time check is completed and the entry is allowed.
new Thread() {
@Override
public void run() {
/*
* to do what you want to after using netfunnel
*/
}
}.start();
}
@Override
public void onCancel(String _cancelURL) {
if( _cancelURL == "" ) {
return;
}
}
@Override
public void onFail() {
/*
* activity is null, internet not connected
*/
}
@Override
public void nfLog(String _message) {
/*
* this function get the process log about library.
* if you want to collect or check process, use this
* like DLog.d(_message)
*/
}
};
2. NetFUNNEL機能を開始したい区間でnfStart関数を呼び出します。
- Kotlin
fun myAction() {
Netfunnel.nfStart("{segment URL}", myInterface)
}
- Java
public void myAction() {
Netfunnel.nfStart("{segment URL}", myInterface);
}
自動化方式の適用方法
トラッキング対象のOkHttpリクエストを生成する際、次のようにインターセプタークラスを追加してください。
- Kotlin
// OKHttp
val okHttpClient = OkHttpClient.Builder()
.addInterceptor(NFInterceptor())
.build
// Retrofit
val retrofit = Retrofit.Builder()
.client(okHttpClient)
.baseUrl("https://example.com")
.build()
- Java
// OKHttp
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.addInterceptor(new NFInterceptor())
.build();
// Retrofit
Retrofit retrofit = new Retrofit.Builder()
.client(okHttpClient)
.baseUrl("https://example.com")
.build();
自動化方式は同期で動作し、onSuccessなどのコールバック関数をサポートしていません。
もし、ユーザーキャンセル、サーバーブロックなどアクセス拒否になった場合、Response codeに900が応答されます。
不正行為の防止
待機中のユーザーが正常でない方法でアクセスを試みようとする場合、次のような措置が取られています。
- 機内モードに切り替えてサーバーとの通信を遮断して接続をしようとする場合
- 機内モード切り替え時のonCancel関数呼び出し
- 戻る機能を利用して接続を試みようとする場合
- 戻る時にonCancel関数を呼び出す
- ボタンを連打して誤動作を誘発して接続を試みようとした場合
- 繰り返し入力防止のため、500ms単位で呼び出しをチェックします。
エージェントのインストールが完了したら、Androidエージェント機能紹介記事で詳細な機能案内を確認してください。
コメント
0件のコメント
サインインしてコメントを残してください。