Java - Android拋棄厭煩的邀請(qǐng)碼,我們應(yīng)該這樣做

<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>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,039評(píng)論 25 709
  • 2017年5月17日 Kylin_Wu 標(biāo)注(★☆)為考綱明確給出考點(diǎn)(必考) 常見手機(jī)系統(tǒng)(★☆) And...
    Azur_wxj閱讀 1,959評(píng)論 0 10
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,554評(píng)論 19 139
  • 點(diǎn)擊查看原文 Web SDK 開發(fā)手冊(cè) SDK 概述 網(wǎng)易云信 SDK 為 Web 應(yīng)用提供一個(gè)完善的 IM 系統(tǒng)...
    layjoy閱讀 14,313評(píng)論 0 15
  • 就像稻草人知道有車禍有命案它也不會(huì)說出來(lái),畢竟這世界上每分每秒都發(fā)生著這樣的事情,他能做的只是事后告訴島上...
    深海里的滿天星閱讀 651評(píng)論 1 3

友情鏈接更多精彩內(nèi)容