apicloud 自定義模塊的開發與上架注意事項


模塊開發要點與返回刷新頁面注意事項

1、介紹

  apicloud 除了使用官方提供的模塊外,我們可以自定義一些模塊供自己使用和上傳到官方出售。針對沒有提供或者價格過貴的模塊,如果有時間自己可以進行研究。

 

2、開發

  首先要先下載開發工具(此處我還是只講Android),建議下載Android Studio。

  

 

  關於開發規范大家參考官網即可(https://docs.apicloud.com/Module-Dev/module-dev-guide-for-android-studio),另附上官網提供的相關文檔地址,如下:

  

  詳細的SDK幫助文檔:docs.apicloud.com/superwebview/Android/

 

  Android在線API文檔:https://developer.android.google.cn/reference/packages.html

 

  Javascript規范及入門:http://www.w3school.com.cn

 

  JSON數據在線Viewer:http://www.bejson.com/go.html?u=http://www.bejson.com/jsonview2/

 

 

  根據官網的開發規范和視頻教程開發基本無傷,在此我主要說明一下中間會有的一些小坑,如下:

  •   開發過程中如果使用Android Studio 自帶的模擬器x86 會報錯,除非改成 arm。   建議大家使用第三方模擬器,比如mumu,海馬之類的,我使用的mumu模擬器(廣告比較少),關於Android Studio 如何連接第三方模擬器,和我一樣剛接觸  studio 的同學可以參考這篇博客,感謝博主謝橋的
      (Android Studio連接第三方模擬器
      還有一個地方需要注意的是, -113這個錯誤,網上有的說需要在gradle里加上以下配置即可,實際測試有點問題,可能是其他某個地方配置有問題,建議大家開始還是按照官文開發。
        
    splits {
        abi {
            enable true
            reset()
            include 'x86', 'armeabi-v7a','x86_64'
            universalApk true
        }
    }
  •   如果在app想要打開某個應用,Android的話需要package ,ios需要Url Scheme,在此送上另一位博主提供資料(常用移動應用 Packagename 和 URL Scheme),感謝起夢。
  •   如果自己開發的模塊想要在官網售賣,上傳模塊信息的時候,大家務必在版本號上注明為  1.0.0,否則會被打回來

 

  

  返回刷新頁面注意事項,今天遇到的小問題,問題與解決方式如下:

  
  在app開發過程中,難免會遇到用戶更改某些信息,返回后需要更新緩存與重新渲染頁面的情況。

  例如:如果用戶注冊成功,我會一般會返回設置頁面,並更新頭像、昵稱等用戶信息,這是除非我們重新open一下,否則不會再次重新選擇,但我們一般情況下使用historyback比較多,或者直接關閉當前頁面,這樣的話,原有的頁面不會重新渲染。

  解決方法:返回時,利用apicloud提供的execScript()接口,執行返回頁面的函數,實現返回頁面的刷新,如下(官網上的例子),如下(不建議大家使用過多的事件監聽,使用api的自定義監聽過多,會導致線程過度增加,占用內存,系統變慢,另外監聽過多,難免會遇到重復監聽,容易出現問題):

  

//在當前window中執行jsfun腳本
var jsfun = 'funcGoto();';
api.execScript({
    script: jsfun
});

//在當前window中找到名為frmName的frame,並在該frame中執行jsfun腳本
var jsfun = 'funcGoto();';
api.execScript({
    frameName: 'frmName',
    script: jsfun
});

//在名為winName的window中執行jsfun腳本
var jsfun = 'funcGoto();';
api.execScript({
    name: 'winName',
    script: jsfun
});

//在名為winName的window中找到名為frmName的frame,並在該frame中執行jsfun腳本
var jsfun = 'funcGoto();';
api.execScript({
    name: 'winName',
    frameName: 'frmName',
    script: jsfun
});

 

歡迎大家提出問題和指正,感謝

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM