<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 href="http://www.openinstall.io/download.html">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 href="http://developer.openinstall.io/p-1344406936/config.html">测试接口</a>。</li>
<li>测试前,我们应该把打包好的应用上传至官方<a href="http://developer.openinstall.io/p-1344406936/deposit.html">包托管理</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="//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>