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