目的: 1. Cocos2d-x集成openinstall sdk? 有這麼一個場景,甲給乙分享了鏈接,乙使用並下載APP,推薦者甲和乙的關係這個思路是怎樣的? 你首先想到的也許會說,那當然就是給對方一個邀請碼去辨識啊。 1、掃碼下載,二維碼裡面有甲的推薦邀請號 2、APP下載包在本伺服器上下載,通 ...
目的:
1. 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
1. 將新建的項目導入AndroidStudio,選項目里的pro.android-studio文件夾導入。
2.跳出主視窗後會跳出兩個小視窗提示,一個視窗Gradle更新,一個是插件更新,沒有的話繼續,有的話可以更新
3.導入好的項目如下圖,如果不是這個結構,請重新導入.
4. 現在開始配置ndk的編譯,選中菜單欄的Run -> Edit Configurations
5.然後選中+,添加外部工具
6.繼續點+號
7.設置工具屬性
8.然後點擊兩個ok後回到下麵界面上
9.選中,1,點擊上移,2,Apply,3,然後點擊OK
10. 點擊ok,編譯設置完畢,可以試著運行一下看看,是否編譯了.
說明:起初項目編譯不通過,老報同樣的錯誤,通過網上找資料,發現我的ndk版本可能下錯了,換成android-ndk-r9d,發現Cocos2d-x3.x對NDK的要求r9d
Ndk換成android-ndk-r9d重新編譯通過~
二:接下來就是集成openinstall流程了:
1. 註冊/登錄openinstall開發者平臺http://developer.openinstall.io/並創建應用
2. 下載導入SDK
3.新建自定義Application類 APP繼承Application並初始化
App啟動時,調用OpenInstall.init(context)方法完成sdk初始化;以下以自自定義APP為例
public class APP extends Application { @Override public void onCreate() { super.onCreate(); OpenInstall.init(this); } }
4.在AppActivity中編寫代碼
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()); } } }); } } }
5. 配置AndroidManifest.xml
1,在AndroidManifest.xml中添加許可權聲明
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
2,在AndroidManifest.xml的application標簽內設置AppKey
<meta-data android:name="com.openinstall.APP_KEY" android:value="openinstall平臺生成的APP_KEY"/>
在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