本文导读:点击此处下载PUSH SDK接入文档版本信息具体说明版本号:483、版本名:3.0.0.3更新内容: 1.修复了读取外...
vivo广告推广平台:安卓PUSH-SDK集成指南
点击此处下载 PUSH SDK接入文档
版本信息
具体说明
版本号:483、版本名:3.0.0.3
更新内容:
1.修复了读取外部存储的问题;
版本号:482、版本名:3.0.0.2
更新内容:
1.恢复了仅用于兼容v3.0.0.0_480以前点击回调接口:onNotificationMessageClicked;
版本号:481、版本名:3.0.0.1
更新内容:
1.修复统一推送联盟接口的已知问题;
版本号:480、版本名:3.0.0.0
更新内容:
1.修复安全漏洞:通知不再支持拉起非导出的Activity;
2.优化push通知点击启动慢的问题;
3.移除onNotificationMessageClicked回调,自定义参数需要统一在被拉起的Activity中通过Intent接收;
注意:
1.vivo推送服务SDK支持的更低android版本为Android 6.0。
2.当通过"自定义/打开应用页面"方式启动应用内Activity时,该Activity在AndroidManifest.xml必须配置属性android:exported="true"。
3.由于项目架构变动,可能会导致您在更新sdk版本时类的路径错误,重新导入类的路径即可。
一、集成sdk
1. 导入aar 包
将解压后的libs文件夹中vivopushsdk-VERSION.aar(vivopushsdk-VERSION.aar为集成的jar包名字,VERSION为版本名称)拷贝到您的工程的libs文件夹中。
在android项目app目录下的build.gradle中添加aar依赖。
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation files("libs/vivo_pushsdk-3.0.0.3.aar")
2. 添加权限
vivo Push集成只需要配置网络权限,请在当前工程AndroidManifest.xml中的manifest节点下添加以下代码:
<!—Vivo Push需要的权限-->
<uses-permission android:name="android.permission.INTERNET"/>
3. 配置appid 、api key等信息
vivo Push集成需要配置对应的appid 、app key信息,其中appid 和app key是在开发者平台中申请的,详见 vivo push 操作手册。
请在当前工程AndroidManifest.xml中的Application节点下添加以下代码(建议复制粘贴防止出错):
<!--Vivo Push开放平台中应用的appid 和api key--> <meta-data
android:name="com.vivo.push.api_key"
android:value="xxxxxxxx"/> <meta-data
android:name="com.vivo.push.app_id"
android:value="xxxx"/>
4. 自定义通知回调类
在当前工程中新建一个类 PushMessageReceiverImpl(自定义类名)继承OpenClientPushMessageReceiver 并重载实现相关方法。并在当前工程的AndroidManifest.xml文件中,添加自定义Receiver信息,代码如下:
<!--push应用定义消息receiver声明--> <receiver android:name="xxx.xxx.xxx.PushMessageReceiverImpl(自定义类名)"
android:exported="false"> <intent-filter> <!--接收push消息-->
<action android:name="com.vivo.pushclient.action.RECEIVE"/> </intent-filter></receiver>
5. 注册service
接入SDK,需注册相关服务以确保正常。
请在当前工程AndroidManifest.xml中的Application节点下添加以下代码(建议复制粘贴防止出错):
<!--Vivo Push需要配置的service、activity--> <service
android:name="com.vivo.push.sdk.service.CommandClientService"
android:permission="com.push.permission.UPSTAGESERVICE" android:exported="true"/>
6. 配置sdk版本信息(仅通过jar包集成方式需要配置,通过aar包集成无需配置)
通过jar包方式接入SDK,需配置SDK版本信息确保正常。
请在当前工程AndroidManifest.xml中的Application节点下添加以下代码(建议复制粘贴防止出错):
<!--Vivo Push SDK的版本信息--> <meta-data
android:name="sdk_version_vivo"
android:value="483"/>
二、启动推送
在工程的Application中,添加以下代码,用来启动打开push开关,成功后即可在通知消息到达时收到通知。
//在当前工程入口函数,建议在Application的onCreate函数中,添加以下代码:
//初始化pushPushClient.getInstance(getApplicationContext()).initialize(); // 打开push开关, 关闭为turnOffPush,详见api接入文档PushClient.getInstance(getApplicationContext()).turnOnPush(new IPushActionListener() {
@Override
public void onStateChanged(int state) {
// TODO: 开关状态处理, 0代表成功 }
});
三、获取token
即获取regId,使用PushClient.getInstance(context).getRegId() 函数获取;
在 Api 接口 turnOnPush回调成功之后,即可获取到注册id。
四、点击通知消息
当设备接收到通知消息后,查看手机的通知栏,当点击通知时,打开通知动作分为打开App首页、打开特定Uri 网址页面、 打开用户自定义、打开应用指定页面。
注意: Sdk 3.0.0.0 以前版本的页面跳转类型打开自定义、打开指定应用页面,在Sdk 3.0.0.0及以后版本中已统一作为打开自定义页面处理。 服务端Api 字段 skipType 跳转类型分别是: 1 是打开App 首页, 2 是打开特定Url 网址页面, 4 是打开自定义页面。
打开App首页或者打开自定义页面,是通过VIVO手机通知中心跨应用启动Activity来实现,需要App保证被拉起的目标Activity exported属性默认设置为true,无权限配置,可以在点击通知时打开指定的Activity。
1. 打开App 首页
在AndroidManifest.xml文件配置主Activity。
在AndroidManifest.xml文件注册的首页Activity 中,配置
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
在Activity 中接受数据:
开发者在首页的Activity 的onCreate 或者 onNewIntent 中,通过如下方式获取数据。
获取消息id,即messageId:
String messageId = intent.getLongExtra("vivo_push_messageId");
获取透传的自定义键值对值,如下,
遍历所有key(遍历clientCustomMap和skipContent的自定义key-value):
Bundle bundle = intent.getExtras();if (bundle != null) {
for (String key : bundle.keySet()) {
if (!TextUtils.isEmpty(key)) {
//注意传递的参数类型 String content = bundle.getString(key);
}
}
}
取单个key(取clientCustomMap和skipContent特定key对应的value):
Intent intent = getIntent();if (intent != null) {
String key1 = intent.getStringExtra("key1");
int key2 = intent.getIntExtra("key2", -1);
}
其中key1为用户自定义String型键值对参数值;key2为用户自定义Integer型键值对参数值。
2. 打开自定义页面
注意:原有通过onNotificationMessageClicked回调接收自定义参数的方式已经废弃,自定义参数需要统一在被拉起的Activity中通过Intent接收。
跨应用启动客户端App需要显示启动,通过Intent 携带透传参数到App,生成好对应的 Intent 参数,然后调用服务端Api 指定Intent 参数来打开自定义App页面;
生成 Intent 参数:
在Android 开发工具中,参考如下代码生成 Intent
Intent intent = new Intent(this,CustomActivity.class);//Scheme协议(vpushscheme://com.vivo.push.notifysdk/detail?)开发者可以自定义intent.setData(Uri.parse("vpushscheme://com.vivo.push.notifysdk/detail?"));//intent 中添加自定义键值对,value 为 String 型intent.putExtra("key1", "xxx"); //intent 中添加自定义键值对,value 为 Integer 型intent.putExtra("key2", xxx);//得到intent url 值//示例:intent://com.vivo.pushtest/detail?#Intent;scheme=vpushscheme;component=com.vivo.pushdemo.test/com.vivo.pushsdk.CustomActivity;S.key1=xxx;i.key2=2;endString intentUri = intent.toUri(Intent.URI_INTENT_SCHEME);
备注 : 开发者以自己实际定义的为准。
注意:在AndroidStudio里生成intentUri后,开发者通过服务端Api或者在管理后台发送通知时,跳转内容(Api 对应字段 为skipContent)透传上例生成的intentUri值,然后在点击通知时打开自定义的 CustomActivity。
在AndroidManifest.xml文件注册被启动的Activity
比如被启动的自定义页面 CustomActivity,其中host、path、scheme 一定要与上面的 Intent 生成参数匹配。
注意:该属性必须设置android:exported="true"
配置如下:
<activity android:name=".CustomActivity"
android:exported="true"> <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:host="com.vivo.push.notifysdk" android:path="/detail" android:scheme="vpushscheme" /> </intent-filter></activity>
注意: activity 名称用户自己定义.
在自定义的 CustomActivity 中接收数据
如下:
public class CustomActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.xxx);
//获取通知消息的messagId String messageId = intent.getStringExtra("vivo_push_messageId");
//获取自定义透传参数值 Intent intent = getIntent();
if (null != intent) {
String key1 = intent.getStringExtra("key1");
int kye2 = intent.getIntExtra("key2", -1);
}
}
}
3. 打开特定Uri 网址
开发者通过Api(Api 对应字段 为skipContent)或者管理后台传自己要打开的Url 网址地址即可。
4. 恢复了仅用于兼容v3.0.0.0_480以前点击回调接口:onNotificationMessageClicked
注意Push SDKv3.0.0.2_482特性:该接口仅用于解决v3.0.0.0_480之前的版本升级Push SDK过程中发送的老版本打开自定义通知(skiptype=3)需要依赖点击回调完成跳转时使用,
新版本通知点击该点击回调是不可用的。
五、混淆说明
若需要混淆app,请在混淆文件中添加以下说明,防止SDK内容被二次混淆,自定义回调类切勿混淆。
-dontwarn com.vivo.push.** -keep class com.vivo.push.**{*; } -keep class com.vivo.vms.**{*; }-keep class xxx.xxx.xxx.PushMessageReceiverImpl{*;}
六、统一推送联盟接入
说明:请完成上述 ‘1.集成SDK’ 和 ‘2.配置信息’ 两个步骤再开始统一推送联盟的接入。
1. 打开push开关
这里只是做了相应的初始化操作,建议用户在自己应用的Application中onCreate()方法中调用turnOnPush操作。
示例代码:
VUpsManager.getInstance().turnOnPush(this, new UPSTurnCallback() {
@Override
public void onResult(CodeResult codeResult) {
if(codeResult.getReturnCode() == 0){
Log.d(TAG, "初始化成功");
}else {
Log.d(TAG, "初始化失败");
}
}
});
2. 注册push
注册push,获取申请的regId,即token。
示例代码:
VUpsManager.getInstance().registerToken(this, "XXX", "XXX", "XXX", new UPSRegisterCallback() {
@Override
public void onResult(TokenResult tokenResult) {
if (tokenResult.getReturnCode() == 0) {
Log.d(TAG, "注册成功 regID = " + tokenResult.getToken());
} else {
Log.d(TAG, "注册失败");
}
}
});
如何在vivo广告平台投放信息流广告?信息流广告一般的扣费模式是怎样的?哪些行业可以在vivo投放?不同的行业在vivo开户需要的咨询一样吗?怎样搭建vivo广告落地页?vivo广告账户如何运营?哪些因素影响账户的效果?欢迎广告主来咨询vivo广告渠道服务商网络,一家专业的vivo广告代理商,为您提供1对1的指导!
本文标题:vivo广告推广平台:安卓PUSH-SDK集成指南
本文链接:https://www.jianzhaner.com/guanggao/1800.html
相关问答:
-
答: 作为一种数字营销手段,广告推广在现代企业的营销中越来越受到重视。伴随着互联网普及和移动设备的普及,vivo广告推广也成为了众多企业进行数字营销的重要手段。但是,在广告推广过程中,如何正确使用定向广告?本文将从基础定向和行为兴趣定向这两个方面进行详细介绍。 一、基础定向 ...
-
答:vivo广告在账号管理过程中是否会遇到这样的问题?1.无法批量复制,只能当个复制,且需逐级复制。2.复制内容只能在当前层级下,无法跨层级。3.广告和创意均不支持复制,创建耗费大量时间。vivo广告复制2.0上线,帮助优化师提升账户管理效率计划层级A类型:仅复制广告计划;B类型:同...
-
答:vivo广告第三方监测链接说明1.1 内容说明vivo 广告平台支持向第三方上报广告监测,本文档说明了 vivo 支持的第三方监测的具体功能,以及广告主对接第三方监测的具体规范,请广告主进行开发对接时参考本说明;vivo 第三方监测规范参照并符合《MMA 中国无线营销联盟移动互...