<h1>OpenInstall - Android集成說明</h1>
官方地址:<a href="http:///www.openinstall.io">http:///www.openinstall.io</a>
開發中,我們經常會遇到填寫邀請碼的問題?尤其是針對跑市場的人員來說,這更是對業務有極大幫助的,邀請碼涉及到公司的業務以及注冊量統計等問題。因此OpenInstall公司推出了一款專門應對該問題的一款SDK【OpenInstall】。經過開發實踐,發現OpenInstall完全可使用并應用于開發業務中。那么我們應該如何集成并使用它呢???
Ps: 該SDK收費標準為8000/year,試用期為1個月
<h2>如何把OpenInstall SDK集成到項目中?</h2>
<h3>1. 首先先按照官方的文檔說明進行配置:</h3>
<ul type="A">
<li>下載 <a >Android SDK</a></li>
<li>
導入Openinstall SDK
將SDK拷貝到項目的libs文件夾中,并導入
dependencies {
compile files('libs/OpenInstall_vX.X.X.jar')
}
</li>
<li>
基礎配置
在AndroidMaifest.xml中添加權限聲明
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
在AndroidMaifest.xml中設置AppKey
<meta-data
android:name="com.openinstall.APP_KEY"
android:value="your AppKey" />
初始化SDK
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
OpenInstall.init(this);
//打開調試,便于看到Log
OpenInstall.setDebug(true);
}
}
</li>
<li>
設置scheme
在AndroidMaifest.xml的喚醒頁面activity標簽中添加intent-filter
<activity
android:name=".MainActivity"
android:launchMode="singleTask">
<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:scheme="your scheme"/> <!--注冊時,官網上生成的scheme-->
</intent-filter>
</activity>
</li>
<li>
個性化安裝集成/渠道統計集成
在應用啟動頁如下調用相關代碼,獲取<b style="color:skyblue">安裝參數/渠道參數</b>
public class SplashActivity extends BaseActivity implements AppInstallListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
//獲取OpenInstall數據
OpenInstall.getInstall(this);
}
@Override
public void onInstallFinish(AppData appData, Error error) {
if (error == null) {
//獲取渠道數據
Log.d("SplashActivity", "channel = " + appData.getChannel());
//獲取個性化安裝數據,需要緩存到本地,需要時就取出來使用
Log.d("SplashActivity", "install = " + appData.getData());
} else {
Log.d("SplashActivity", "error : "+error.toString());
}
}
}
</li>
<li>
一鍵跳轉集成
在喚醒頁面如下調用相關代碼,獲取web端傳過來的參數
public class MainActivity extends BaseActivity implements AppWakeUpListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
OpenInstall.getWakeUp(getIntent(), this);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
//此處要調用,否則App在后臺運行時,會無法截獲
OpenInstall.getWakeUp(intent, this);
}
@Override
public void onWakeUpFinish(AppData appData, Error error) {
if (error == null) {
//能從瀏覽器中獲取到喚醒參數,目前一些瀏覽器不支持該功能,如UC,綠茶等瀏覽器
Log.d("MainActivity", "wakeup = " + appData.toString());
} else {
Log.d("MainActivity", "error : "+error.toString());
}
}
}
</li>
</ul>
<h3>2. 應該在哪里獲取安裝參數?</h3>
ps: 只有在<em style="color:skyblue">全新安裝</em>的時候,才能從AppInstallListener中的AppData中獲取到數據!
<ul>
<li>安裝參數需要由網頁提供WebSDK編寫,暫時測試時可以使用官方的<a >測試接口</a>。</li>
<li>測試前,我們應該把打包好的應用上傳至官方<a >包托管理</a>處。</li>
<li>測試時,我們需要從測試鏈接中獲取APP下載鏈接,下載并安裝應用。</li>
<li>由接口傳入的數據,將會傳入<b>AppData</b>對象中,我們需要保存該值到本地。</li>
</ul>
<h3 style="color:skyblue;">備注: Web SDK如何集成測試環境?</h3>
SDK概述
web sdk用于web頁面啟動/安裝app,并在啟動/安裝app的同時,向app傳遞各種自定義參數(通過android/ios sdk可>獲取傳遞的參數)。web sdk可根據不同瀏覽器的特性,提供完整的app啟動與安裝的流程,包括微信,QQ等內置瀏覽器。
<!-- 以下為openinstall集成代碼 -->
<!-- 強烈建議直接引用下面的cdn加速鏈接,以得到最及時的更新,我們將持續跟蹤各種主流瀏覽器
的變化,提供最好的服務;不推薦將此js文件下載到自己的服務器-->
<script type="text/javascript" src="http://res.cdn.openinstall.io/openinstall.js"></script>
<script type="text/javascript">
//初始化
/*web頁面向app傳遞的json數據(json string/js Object),應用被拉起或是首次安裝時,通過相
應的android/ios api可以獲取此數據*/
var data={'testKey':'testValue'};
var m = new OpenInstall({
/*appKey必選參數,openinstall為每個應用分配的ID*/
appKey : 'wcacud'
},data);
//用法1:如app已安裝,進入網頁立即拉起app;用戶點擊某個按鈕時再開始安裝app
/*通過scheme拉起app(如果已在openinstall平臺開啟scheme啟動功能)*/
m.schemeWakeup();
/*用戶點擊某個按鈕時,安裝app*/
document.getElementById('downloadButton').onclick=function(){
m.install();
}
//用法2:用戶點擊某個按鈕拉起app,等待設定時間后app尚未拉起,再安裝app
/*用戶點擊某個按鈕時,安裝app*/
//document.getElementById('downloadButton').onclick=function(){
// //500毫秒后app尚未拉起,將安裝app,可自定義時間
// m.wakeupOrInstall({timeout:500});
//}
</script>