大家好,又见面了,我是全栈君。
目的:
- Cocos2d-x集成openinstall sdk?
有这么一个场景,甲给乙分享了链接,乙使用并下载APP,推荐者甲和乙的关系这个思路是怎样的?
你首先想到的也许会说,那当然就是给对方一个邀请码去辨识啊。
1、扫码下载,二维码里面有甲的推荐邀请号
2、APP下载包在本服务器上下载,通过地址也是可以知道甲的邀请信息
3、在APP下载输入甲的邀请码
没错,这个是可以实现的,但是只是传统的做法,用户转化率严重低下。 另一种更创新性的实现方式就是:最近在使用一个叫openinstall的SDK,可以实现无码安装实现上述的场景,提高用户的转化率。通过它实现免填邀请码的功能,集成到Cocos2d-x游戏开发中。对App安装流程的优化,尤其是免填写邀请码安装,App推广的有奖邀请活动更大程度的达到推广爆炸式的效果。
在分享链接自定义各种动态参数(如推广渠道号,邀请码,游戏房间号,用户id等等)。通过在分享链接url中附带app邀请人的用户id,就可达到免填邀请码的效果;或者app通过在url中附带游戏房间号实现直达游戏房间也可建立上下级关系;Cocos2d-x开发中免不了邀请用户获得奖励;新老用户直达游戏场景;从各种浏览器一键拉起游戏场景等等。
那么如何在cocos2d-x集成openinstall呢?
一:环境配置
SDK,NDK,AN的配置请看 http://www.cnblogs.com/studweijun/p/4320778.html
- 将新建的项目导入AndroidStudio,选项目里的pro.android-studio文件夹导入。
2.跳出主窗口后会跳出两个小窗口提示,一个窗口Gradle更新,一个是插件更新,没有的话继续,有的话可以更新
3.导入好的项目如下图,如果不是这个结构,请重新导入.
- 现在开始配置ndk的编译,选中菜单栏的Run -> Edit Configurations
5.然后选中 ,添加外部工具
6.继续点 号
7.设置工具属性
8.然后点击两个ok后回到下面界面上
9.选中,1,点击上移,2,Apply,3,然后点击OK
- 点击ok,编译设置完毕,可以试着运行一下看看,是否编译了.
说明:起初项目编译不通过,老报同样的错误,通过网上找资料,发现我的ndk版本可能下错了,换成android-ndk-r9d,发现Cocos2d-x3.x对NDK的要求r9d
Ndk换成android-ndk-r9d重新编译通过~
二:接下来就是集成openinstall流程了:
- 注册/登录openinstall开发者平台http://developer.openinstall.io/并创建应用
- 下载导入SDK
3.新建自定义Application类 APP继承Application并初始化
App启动时,调用OpenInstall.init(context)方法完成sdk初始化;以下以自自定义APP为例
代码语言:java复制public class APP extends Application {
@Override
public void onCreate() {
super.onCreate();
OpenInstall.init(this);
}
}
复制代码
4.在AppActivity中编写代码
代码语言:java复制public class AppActivity extends Cocos2dxActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 在唤醒页面中如下调用相关代码,获取web端传过来的自定义参数
OpenInstall.getWakeUp(getIntent(), wakeUpAdapter);
// 在APP需要个性化安装参数时(由web网页中传递过来的,如邀请码、游戏房间号等自定义参数),
// 调用OpenInstall.getInstall方法,在回调中获取参数(可重复获取)
getInstall();
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
// 此处要调用,否则App在后台运行时,会无法截获
OpenInstall.getWakeUp(intent, wakeUpAdapter);
}
AppWakeUpAdapter wakeUpAdapter = new AppWakeUpAdapter() {
@Override
public void onWakeUp(AppData appData) {
//获取渠道数据
String channelCode = appData.getChannel();
//获取绑定数据
String bindData = appData.getData();
Log.d("OpenInstall", "getWakeUp : wakeupData = " appData.toString());
Toast.makeText(AppActivity.getContext(),"wakeup:" appData.toString(),Toast.LENGTH_SHORT).show();
}
};
@Override
protected void onDestroy() {
super.onDestroy();
wakeUpAdapter = null;
}
public void getInstall(){
//获取OpenInstall数据
final SharedPreferences sp = getSharedPreferences("cocosdemo", MODE_PRIVATE);
boolean needInstall = sp.getBoolean("needInstall", true);
if (needInstall) { //是否需要多次调用getInstall获取参数
OpenInstall.getInstall(new AppInstallListener() {
@Override
public void onInstallFinish(AppData appData, Error error) {
if (error == null) {
if (appData == null || appData.isEmpty()) return;
OpenInstall.reportRegister();//注册上报统计
Log.d("openinstall", "reportRegister success");
//获取自定义数据
Log.d("OpenInstall", "getInstall : bindData = " appData.getData());
//获取渠道数据
Log.d("OpenInstall", "getInstall : channelCode = " appData.getChannel());
//使用数据后,不想再调用,将needInstall设置为false
sp.edit().putBoolean("needInstall", false).apply();
Toast.makeText(AppActivity.getContext(), "install:" appData.toString(), Toast.LENGTH_SHORT).show();
} else {
Log.e("OpenInstall", "getInstall : errorMsg = " error.toString());
}
}
});
}
}
}
复制代码
- 配置AndroidManifest.xml
在AndroidManifest.xml中添加权限声明
代码语言:java复制<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
复制代码
在AndroidManifest.xml的application标签内设置AppKey
代码语言:java复制<meta-data
android:name="com.openinstall.APP_KEY"
android:value="xrut34"/>
复制代码
在AndroidManifest.xml中的application标签中添加android:name=”.APP”指定自定义的Application类,以便程序启动的时候初始化自定义Application类,而不是系统默认的Application类
在AndroidManifest.xml的唤醒页面activity标签中添加intent-filter(一般为MainActivity),配置scheme,用于浏览器中拉起
6:打包上传安装包到openinstall后台测试:
测试
最后贴上demo下载地址:https://github.com/AnneCR/Cocos2D-openinstall
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/107645.html原文链接:https://javaforall.cn