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{* ;}