1. 程式人生 > >APICloud模塊開發爬過的坑(集成openinstall基於個性化安裝的渠道統計服務)

APICloud模塊開發爬過的坑(集成openinstall基於個性化安裝的渠道統計服務)

openisntall 免打包的渠道統計 apiCloud 模塊開發; 混合開發

引子:
現在很多的app都用混合開發,apicloud的app混合開發也是很火。很多時候需要集成一下第三方的sdk服務,比如:openisntall的統計服務等。那麽如何編寫一個模塊開發呢,apicloud文檔寫的也是模棱兩可,期間也爬過很多的坑,在這裏做一些記錄。

開發的模塊是把第三方的渠道統計服務openinstall集成進來,實現免打包的渠道統計,渠道追蹤來源,無碼邀請等功能都是這次我需要用到的功能,集成openisntall能實現這些功能,所以,如何集成openisntall,進行模塊開發?

1、註冊/登錄openinstall開發者平臺http://developer.openinstall.io/並創建應用

openisntall下載的jar包
技術分享圖片
2、 參考apicloud模塊開發文檔,https://docs.apicloud.com/Module-Dev/module-dev-guide-for-android。很坑的是,android studio的打包出來的aar包目前apicloud官方是支持的不是很好的,各種問題,模塊未綁定等問題,後來技術支持說是自定義loader對android studio打的模塊包不生效,用雲編譯的升級環境進行編譯。但是,還是出現問題,模塊開發裏面的方法調用不到,模塊包是檢測了,沒問題,方法內容也沒問題,就是調用沒反應。

3、後面技術支持說用Eclipse進行模塊開發試試,於是重新用了Eclipse進行開發了,一樣的模塊包結構,打包的jar和模塊結構包傳到自定義模塊進行綁定,調用,雲編譯升級環境,ok,編譯成功(那個雞凍的小心臟啊,居然成功了),(強烈要求apiCloud官方對android studio支持更給力點)貼一張模塊包結構圖(需要註意的貼上,其他的參照官方文檔來)

module.json不要直接用測試項目裏那個,而是去掉外圍定義,直接描述模塊,文檔有坑
技術分享圖片

技術分享圖片

技術分享圖片

4、好了,打包成zip包傳到自定義模塊就上傳成功ok。
(模塊名稱最好與打包的zip包名稱一致,點擊保存,添加引用,ok)
技術分享圖片

5、apicloud調用模塊開發編寫接口方法。

<script type="text/javascript">
  var uzmoduledemo = null;
        apiready = function() {
            uzmoduledemo = api.require(‘moduleInstall‘);
            //監聽appintent,獲取getWakeup接口,獲得回調參數,此處相當於android的newIntent()函數
            api.addEventListener({
                name: ‘appintent‘
            }, function(ret, err) {
                uzmoduledemo.getWakeup({
                    "uri": ret.data
                }, function(ret, err) {
                    alert(JSON.stringify(ret));
                });
            });
        };

        //獲取個性化安裝接口,獲取回掉參數
        function getInstall() {
            uzmoduledemo.getInstall(function(ret, err) {
                alert(JSON.stringify(ret));
            });
        }

        //註冊統計上報
        function reportRegister() {
            uzmoduledemo.reportRegister();
        }
 </script>

6、進行雲編譯(使用升級環境)編譯完成的apk下載下來
技術分享圖片

技術分享圖片
7、下載的apk包上傳到openisntall後臺並測試
技術分享圖片技術分享圖片

APICloud模塊開發爬過的坑(集成openinstall基於個性化安裝的渠道統計服務)