京东CPS与阿里百川CPS有很大不同,认清基本概念后集成时就容易的多。
京东CPS,只需要一个链接足以,这条链接放在自身的WebViewActivity中,如果设置了唤起App,则链接会返回一个打开京东App的规则字符串,我们获取到后跳转到京东App就可以了。
京东cps,设置推广位
设置后得到一个链接,然后用自身的WebView
请求,当然也可以用系统自带的浏览器打开,可以直接唤起App。有时候我们不想用户离开自己的应用,使用自身的App的WebView
控件打开就成了首选,这里就需要配置一些参数。
继承WebViewClient
复写里面的shouldOverrideUrlLoading
方法:
@SuppressWarnings("deprecation")
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// DebugUtil.error("----url:"+url);
if (TextUtils.isEmpty(url)) {
return false;
}
if (url.startsWith("http:") || url.startsWith("https:")) {
// 可能有提示下载Apk文件
if (url.contains(".apk")) {
startActivity(url);
return true;
}
return false;
}
startActivity(url);
return true;
}
private void startActivity(String url) {
try {
Intent intent1 = new Intent();
intent1.setAction("android.intent.action.VIEW");
Uri uri = Uri.parse(url);
intent1.setData(uri);
intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mActivity.startActivity(intent1);
} catch (Exception e) {
e.printStackTrace();
}
}
请求京东的推广url后,会返回一串这样的URL SCHEME:openApp.jdMobile://virtual?params={参数}
这就是跳转京东页面的SCHEME
淘宝: taobao:// 微博: weibo://qrcode 微信: weixin://scanqrcode 支付宝: alipayqr://platformapi/startapp?saId=10000007 豆瓣: douban:// 京东: openApp.jdMobile://virtual?params={参数} 电话: mobilephone:// 备忘录: mobilenotes:// Chrome谷歌浏览器: googlechrome:// 12306订票助手: trainassist:// 飞信: fetion:// 豆瓣FM: doubanradio:// 爱奇艺PPS: ppstream:// 哔哩哔哩动画: bilibili:// 56视频: com.56Video:// 365日历: rili365:// 58同城: wbmain:// 遇见: iaround:// 陌陌: momochat:// 有道词典: yddict:// 优酷: youku:// 掌阅iReader: iReader:// 天涯社区: tianya:// 天气通Pro: sinaweatherpro:// 天气通: sinaweather:// 墨迹天气: rm434209233MojiWeather:// 腾讯新闻: qqnews:// 腾讯微云: weiyun:// 腾讯地图: sosomap:// 淘宝旅行: taobaotravel:// 人人: renrenios://
CPS类别 | 是否需要SDK | WebView处理 | 打开App方式 | App左侧是否有标识 | 接入复杂程度 |
---|---|---|---|---|---|
阿里百川 | 是 | 无需处理 | 通过SDK打开 | 有 | 相对复杂 |
京东 | 否 | 要处理 | 使用规则协议打开 | 无 | 简单 |