Android SDK 集成指南

在AndroidManifest.xml中添加权限声明

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

在AndroidManifest.xml的application标签内设置AppKey

<meta-data    
android:name="com.CodeInstall.APP_KEY"    android:value="af5a03170db784cb42e89e4b65bcff36" />

备注:将com.CodeInstall.APP_KEY对应的value替换成 CodeInstall为应用分配的appkey

请确保上述工作已全部完成

一、初始化使用

请在应用主页的onCreate里调用如下代码初始化SDK:

CodeInstall.init(this);

使用1.6.4及以上版本可以在应用启动时初始化,即在自定义Application的onCreate里调用以上代码(可参考最新版官方Demo)。

二、功能集成

1.携带参数安装

在 APP 需要安装参数时(由 web 网页中传递过来的,如邀请码、游戏房间号等动态参数),在回调中获取参数(可重复获取)

CodeInstall.getInstall(new ReceiptCallBack() {
    @Override
    public void onResponse(Transfer transfer) {
        transfer.getChannelNo() + "::" + transfer.getPbData();
    }
});

2. 渠道统计

SDK 会自动完成访问量、点击量、安装量、活跃量、留存率等统计工作。

3. 注册量统计

如需统计每个渠道的注册量(对评估渠道质量很重要),可根据自身的业务规则,在确保用户完成 app 注册的情况下调用以下接口(注:本SDK提供了两种统计调用方式,请二选一,不可同时使用):

//用户注册成功后调用
第一种:无回调结果的调用
CodeInstall.register();
第二种:有回调结果的调用
CodeInstall.register(new ReceiptCallBack() {
    @Override
    public void onResponse(Transfer transfer) {
        //如果transfer.getMsg()为success,则代表统计注册量成功;
        //如果transfer.getMsg()为error,则代表统计注册量失败;

    }
});

4. 一键拉起

在 AndroidManifest.xml 的唤醒页面 activity 标签中添加 intent-filter(一般为 MainActivity ),配置 scheme,用于浏览器中拉起

<activity
    android:name=".MainActivity"
    android:launchMode="singleTask">
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
        <data android:scheme="adadw2"/>
    </intent-filter></activity>

注:如果唤醒页面和启动页是同一 Activity,则 AndroidManifest.xml 的配置如下

<activity
    android:name=".MainActivity"
    android:launchMode="singleTask">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
        <data android:scheme="adadw2"/>
    </intent-filter></activity>

在唤醒页面中如下调用相关代码,获取 web 端传过来的动态参数

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //一键唤醒相关
  CodeInstall.getWakeUp(getIntent(), new ReceiptCallBack() {
    @Override
    public void onResponse(Transfer transfer) {
            //getPbData里获取的是设置的传递参数 
            Log.i("demo", "唤醒参数-" + transfer.getChannelNo() + "::" + transfer.getPbData());

    }
});

}

@Override
protected void onNewIntent(Intent intent){
    super.onNewIntent(intent);
    // 应用后台唤醒需要添加如下代码
  CodeInstall.getWakeUp(intent, new ReceiptCallBack() {
    @Override
    public void onResponse(Transfer transfer) {
             //getPbData里获取的是设置的传递参数
             Log.i("demo", "唤醒参数-" + transfer.getChannelNo() + "::" + transfer.getPbData());

    }
});

}

5. 如何在代码混淆时忽略CodeInstall sdk?

在proguard文件中添加配置:

#忽略警告
-dontwarn com.project.codeinstallsdk.**
#避免混淆
-keep public class com.project.codeinstallsdk.CodeInstall{*;}
-keep public class com.project.codeinstallsdk.model.ConfigInfo**{*;}
-keep public class com.project.codeinstallsdk.model.Rouse**{*;}
-keep public class com.project.codeinstallsdk.model.Transfer**{*;}
-keep public class com.project.codeinstallsdk.inter.ConfigCallBack{* ;}
-keep public class com.project.codeinstallsdk.inter.ReceiptCallBack{* ;}
-keep public class com.project.codeinstallsdk.Version{* ;}

results matching ""

    No results matching ""