快速集成華為 AGConnect 應用內消息服務 - Android


華為 AppGallery Connect 提供了一個應用內消息的服務。應用內消息服務可以在用戶使用應用時,基於用戶使用情景向用戶發送有針對性的消息,鼓勵用戶使用應用的某些關鍵功能,也可以借助應用內消息發送更具吸引力的營銷內容,增強用戶粘性。今天就來教大家如何接入 AppGallery Connect 的應用內消息服務。

1、在 AGC 上開通應用內消息並創建新的消息:

我的項目 下選擇你的開發項目,在增長下面,找到應用內消息服務,點擊開通:

沒有 Android 項目的話,可以先自己創建一個。

1.png

開通后我們就可以創建新的消息了。

1.1. 首先點擊右上角“添加應用內消息”

2.png

1.2. 配置消息名稱和消息描述。

3.png
1.3. 設置樣式和內容,完成后點擊“下一步”。

在“消息種類”下拉框中選擇需要創建的消息類型,然后設置對應的樣式和內容。當前支持的消息類型包括:彈框消息、圖片消息、Banner消息。

4.png
5.png

4. 設置發送目標,完成后點擊“下一步”。

  • 在“應用”欄選擇需要發布應用內消息的應用包名。
  • 點擊“新增條件”可以靈活設置消息發送的用戶,例如應用版本、OS版本、語言、國家地區、受眾群組等。其中,“用戶屬性”條件需要在“華為分析 -> 管理 -> 用戶屬性管理”中提前定義,“預測”條件需要在“我的項目->增長->預測”創建預測任務。
6.png

5. 設置發送時間。

7.png

這里可以設置觸發事件,除了默認的幾個觸發事件外還可以通過華為高級分析進行自定義,具體指導可以參考官方文檔:

https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-appmessage-create-android-0000001072054882

8.png

最后設置轉化事件,這一步是可選的。在設置轉化事件前,需要將對應事件的轉化事件開關打開。操作步驟如下:

在左側導航欄中選擇“華為分析 > 管理 > 事件管理”,將需要轉換的事件對應的“標記為轉化事件” 和“事件開關”打開。除SDK自動采集的事件外,還可以通過新建“預置事件”或“自定義事件”進行埋點分析

6. 最后點擊保存或發布按鈕就可以完成消息設置了

9.png

2、在 Android 項目里集成 SDK

a) 集成 SDK

1、在項目級的 gradle 文件中添加華為 Maven,即配置下面標紅的內容

buildscript {
    repositories {
        google()
        jcenter()
        maven {url 'https://developer.huawei.com/repo/'}
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:4.0.1'
        classpath 'com.huawei.agconnect:agcp:1.5.2.300'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {url 'https://developer.huawei.com/repo/'}
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

2、打開應用級的 build.gradle 文件,配置好雲存儲的 SDK 和華為認證服務的 SDK,配置下面標紅的內容即可。  注意別落了上面的 agcp 插件

apply plugin: 'com.android.application'
apply plugin: 'com.huawei.agconnect'
android {…..}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

    implementation 'com.huawei.agconnect:agconnect-appmessaging:1.5.2.300'

}

 b) 下載 json 文件,並且配置默認存儲實例

1、在 AGC 界面上,選擇 我的項目 -> 項目設置–> 常規 下面,下載 agconnect-services.json 文件到你的 Android 項目的 app 路徑下。

10.png

3、功能開發:

如果開發者對消息的樣式等信息沒有要求,那應用內消息完全可以0代碼集成。但是應用內消息 SDK 還提供了自定義消息布局等功能供開發者使用。

1、設置自定義布局

想要設置自定義布局,首先我們需要有一個自定義的布局。我們需要先實現一個布局類繼承 SDK 中的 AGConnectAppMessagingDisplay,並復寫其中的 displayMessage 方法

public class CustomDisplayView implements AGConnectAppMessagingDisplay {
    @Override
   public void displayMessage (
       @NonNull AppMessage appMessage,
       @NonNull AGConnectAppMessagingCallback callback) {
   }
}

在 displayMessage 中我們可以定義一個 AlertDialog 然后將布局文件應用進去即可。這是我寫的邏輯:

@Override
public void displayMessage(@NonNull AppMessage appMessage, @NonNull AGConnectAppMessagingCallback callback) {
    Log.d(TAG, appMessage.getId() + "");
    showDialog(appMessage, callback);
}

private void showDialog(@NonNull final AppMessage appMessage, @NonNull final AGConnectAppMessagingCallback callback) {
    View view = LayoutInflater.from(activity).inflate(R.layout.custom_view, null, false);
    final AlertDialog dialog = new AlertDialog.Builder(activity).setView(view).create();
    Button click = view.findViewById(R.id.click);
    Button dismiss = view.findViewById(R.id.dismiss);
    TextView id = view.findViewById(R.id.id);
    id.setText("MessageID: " + appMessage.getId());
    click.setOnClickListener(new View.OnClickListener() {
        @Override

        public void onClick(View v) {
            // set button callback
            callback.onMessageClick(appMessage);
            callback.onMessageDismiss(appMessage, AGConnectAppMessagingCallback.DismissType.CLICK);
            dialog.dismiss();
        }
    });

    dismiss.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //set button callback
            callback.onMessageDismiss(appMessage, AGConnectAppMessagingCallback.DismissType.CLICK);
            dialog.dismiss();
        }

    });

    dialog.show();

    dialog.getWindow().setLayout((getScreenWidth(activity) / 4 * 3), LinearLayout.LayoutParams.WRAP_CONTENT);

    callback.onMessageDisplay(appMessage);

}

布局設置好后,我們就可以調用 addCustomView 方法來應用我們的布局了

CustomView customView = new CustomView(MainActivity.this);
appMessaging.addCustomView(customView);

 2、調試消息

在消息沒有正式發布之前,我們可以對消息進行調試。調試有幾個步驟

a) 獲取調試設備的 AAID。AAID 是應用匿名標識符,標識運行在移動智能終端設備上的應用實例,只有該應用實例才能訪問該標識符,它只存在於應用的安裝期。與無法重置的設備級硬件 ID 相比,AAID 具有更好的隱私權屬性。我們可以通過代碼來獲取這個 AAID

HmsInstanceId inst  = HmsInstanceId.getInstance(this);

Task<AAIDResult> idResult =  inst.getAAID();

idResult.addOnSuccessListener(new OnSuccessListener<AAIDResult>() {
    @Override
    public void onSuccess(AAIDResult aaidResult) {
        String aaid = aaidResult.getId();
        textView.setText(aaid);
        Log.d(TAG, "getAAID success:" + aaid );
    }
}).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(Exception e) {
        Log.d(TAG, "getAAID failure:" + e);
    }
});

b) 通過以上的方法我們就可以獲取到這個 AAID 了,我們可以將這個參數保存下來,后續會使用到。

c) 來到應用內消息管理台,找到剛剛我們創建的消息在操作一欄我們點擊三個點的圖標,找到調測

11.png

  d) 點擊“新增測試用戶”然后將我們剛剛獲取的AAID輸入進去即可。

12.png

e) 最后點擊保存測試即可。完成后我們就可以使用相應的手機進行消息調測了,消息將在應用打開后展示。

應用內消息服務開發指南:

https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-appmessage-getstarted-android-0000001072532718

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM