应用下载弹窗确认
基本信息
4.430.1300新增
在广告播放中(广告展示和落地页),点击触发广告下载时对开发者注册的回调函数进行回调,开发者可以使用回调获取应用名称、版本等相关信息,并进行弹窗提示用户是否确认进行下载。
适用场景:在合规的场景,点击下载类广告必须向用户展示应用信息并二次确认是否下载,而sdk的内部弹窗的格式不符合开发者UI要求的时候。
适用广告类型:所有广告形态
接口详情
ApkDownloadComplianceInterface
com.qq.e.comm.compliance.ApkDownloadComplianceInterface
该接口定义了广告sdk提供获取应用类广告,应用的信息和设置下载回调的接口。
方法名 | 方法介绍 |
---|---|
getApkInfoUrl | 获取应用信息的url,通过该url可以获取应用的详细信息 |
setDownloadConfirmListener | 设置发生应用下载时的回调 |
SCENES_AD_OR_NATIVE_LANDING_PAGE | 常量,表明下载的场景是点击广告本身,或者原生落地页 |
SCENES_WEB_LANDING_PAGE | 常量,表明下载的场景是点击落地页 |
DownloadConfirmListener
com.qq.e.comm.compliance.DownloadConfirmListener
开发者设置的发生下载时的回调接口,开发者需要实现该接口,并通过setDownloadConfirmListener
设置给sdk。
方法名 | 方法介绍 |
---|---|
onDownloadConfirm | 在发生下载时sdk会回调该方法 |
onDownloadConfirm的参数
参数 | 参数介绍 |
---|---|
context | 发生下载时位于前台的activity,可能是开发者的activity,也可能是sdk的activity,使用这个参数弹窗才能保证弹窗可见 |
scenes | 下载发生的场景,参见ApkDownloadComplianceInterface 定义的场景常量 |
infoUrl | 将要下载的应用信息的url地址,这个信息和ApkDownloadComplianceInterface.getApkInfoUrl 相同 |
callBack | 开发者通过这个callBack通知sdk是继续下载还是取消下载,具体定义参见下文 |
DownloadConfirmCallBack
com.qq.e.comm.compliance.DownloadConfirmCallBack
在发生下载时sdk回调给开发者的接口中的callBack参数,开发者通过该参数通知sdk是继续下载还是取消下载。
方法名 | 方法介绍 |
---|---|
onConfirm | 确认下载 |
onCancel | 取消下载 |
接入注意事项
- 应用的隐私链接url,对应的可能是图片的url,也可能是html网页,需要使用webview或者外部浏览器打开
- 要在广告加载成功时设置下载确认回调
- 如果不设置会走之前(4.330.1200)版本的逻辑
接入代码示例
根据广告形态的不同,有的通过拉取广告的对象设置下载回调,有的通过广告对象设置下载回调,具体可以参考demo中的实现代码。
(关键代码展示,详细请参考压缩包的代码)
// DownloadConfirmHelper.java 定义下载的回调函数
public static final DownloadConfirmListener DOWNLOAD_CONFIRM_LISTENER =
new DownloadConfirmListener() {
@Override
public void onDownloadConfirm(Activity context, int scenes, String infoUrl,
DownloadConfirmCallBack callBack) {
Log.d(TAG, "scenes:" + scenes + " info url:" + infoUrl);
//获取对应的json数据并自定义显示
new DownloadApkConfirmDialog(context, getApkJsonInfoUrl(infoUrl), callBack).show();
//如果不想自己解析json数据可以直接使用webView展示应用信息,和上面二选一
//new DownloadApkConfirmDialogWebView(context, infoUrl, callBack).show();//使用webview显示
}
};
// SplashActivity 开屏接入示例,开屏通过广告的拉取类设置下载回调,要在广告拉取成功才可以获取应用信息和设置下载回调
@Override
public void onADLoaded(long expireTimestamp) {
if (DownloadConfirmHelper.USE_CUSTOM_DIALOG) {
splashAD.setDownloadConfirmListener(DownloadConfirmHelper.DOWNLOAD_CONFIRM_LISTENER);
}
}
// NativeExpressRecyclerViewActivity 自渲染2.0 接入示例,自渲染2.0有对应的广告类要在广告类里设置下载回调
@Override
public void onADLoaded(List<NativeExpressADView> adList) {
for (int i = 0; i < adList.size(); i++) {
int position = count + FIRST_AD_POSITION + ITEMS_PER_AD * i + i;
if (position < mNormalDataList.size()) {
NativeExpressADView view = adList.get(i);
if (DownloadConfirmHelper.USE_CUSTOM_DIALOG) {
view.setDownloadConfirmListener(DownloadConfirmHelper.DOWNLOAD_CONFIRM_LISTENER);
}
}
}
}
//其他广告形态请参考demo里的使用示例