kerkee在Android上的快速上手指南

kerkee是一個多主體共存型Hybrid框架,具備跨平臺、用戶體驗好、性能高、擴展性好、靈活性強、易維護、規範化、集成雲服務、具備Debug環境、完全解決跨域問題。android

Github上的地址:https://github.com/kercer/kerkee_androidgit

OSChina上的地址:https://git.oschina.net/zihong/kerkee_android.gitgithub

官網地址:http://www.kerkee.com跨域

kerkee的native部分目前支持Android和iOS平臺,兩個平臺的架構設計及接口設計保持一致,大大下降了跨平臺的成本,下面介紹一下如何集成kerkee以及如何上手快速作出一款本身的demo架構

kerkee的集成有:包的方式集成和源碼集成兩種方式,你能夠選擇其中的一種方式集成框架

包方式集成

***前提:***有Android環境,本項目如今使用的是gradle構建,IDE建議Android Studio,固然你也可使用idea或eclipse,甚至其餘。eclipse

kerkee從包方式集成,很是簡單,建議使用此方式,乾淨簡潔。ide

在你的Android工程的build.gradle中找到 dependencies 塊,添加函數

compile 'com.kercer:kerkee:1.3.9'便可。性能

以下所示

dependencies {

    compile fileTree(include: '*.jar', dir: 'libs')

    compile 'com.kercer:kerkee:1.3.9'

}

源碼集成

  • 一、 先拉取源碼

    git clone https://github.com/kercer/kerkee_android.git

    源碼的根目錄包含kerkeekerkee_example目錄

    kerkee目錄是kerkee的工程,能夠直接導入工程進行lib庫依賴

  • 二、把kerkee目錄拷貝到本身的工程根目錄(一般與你工程的setting.gradle同一目錄)

  • 三、在你本身工程的setting.gradle文件中添加include ':kerkee'

  • 四、在你本身工程build.gradle文件的dependencies 代碼塊中添加compile project(':kerkee')

基於此,集成基本完成,接下來將介紹如何上手實現本身的demo

快速上手指南

簡述:

只需三步便可代碼快速上手

  1. 註冊js與native對應的類

  2. 實現native部分與js對應的方法

  3. 建立KCWebview進行調用

如下詳情說明一下如何快速上手

  • 註冊對應的接口類或模塊

能夠參考例子中的KCRegistMgr類的實現,全局只需註冊一次就夠了

//註冊類,所註冊的native code中的類的函數必是靜態函數,js都能調到

//第一個參數爲js的類名,第二個參數爲native的類名

KCJSBridge.registClass(KCJSObjDefine.kJSObj_testModule, KCApiTestModule.class);

//上層可使用本身的類取代kerkee中的jsBridgeClient,對應的js對象類爲jsBridgeClient

// KCJSBridge.registClass(KCJSDefine.kJS_jsBridgeClient, KCApiJSBridgeClient.class);//與下一行效果一致

KCJSBridge.registJSBridgeClient(KCApiJSBridgeClient.class);



//註冊對象方式

//KCApiJSObjExample必須繼承KCJSObject,並實現getJSObjectName()方法,返回js類名



//KCApiJSObjExample中的函數能夠是靜態函數也能夠是成員函數,HybridRuntime會自動處理



KCJSBridge.registObject(new KCApiJSObjExample());
  • 實現JS對應的Native接口

靜態類如KCApiTestModule中的實現,修改一下方法名便可

public static void testInfo(final KCWebView aWebView, KCArgList aArgList)

{

}

KCApiJSObjExample(繼承KCJSObject,並實現getJSObjectName()),修改一下方法名便可

//成員方法

public void objExampleNotStaticFunction(final KCWebView aWebView, KCArgList aArgList)

{

}



//靜態方法

public static void objExampleStaticFunction(final KCWebView aWebView, KCArgList aArgList)

{

}
  • 建立KCWebView

在例子中提供了一個默認的KCDefaultBrowser,若是你有特殊的UI需求,你能夠參照KCDefaultBrowser進行實現,這時你能夠隨心所欲地能夠把KCWebView添加到任何view中進行呈現

所要注意的地方是:

建立KCWebView時,初始化時,若須要設置ChromeClient和WebViewClient,則注意如下兩個函數的參數類型

mWebView.setWebChromeClient(KCWebChromeClient);

mWebView.setWebViewClient(KCWebViewClient)

  • 調用
@Override

    protected void onCreate(Bundle savedInstanceState)

    {

        super.onCreate(savedInstanceState);

        //setContentView(R.layout.activity_main);



        //create browser that use KCWebview

        KCDefaultBrowser browser = new KCDefaultBrowser(this);

        View view = browser.getView();

        setContentView(view);



        //regist classes to JSBridge,the relationship between binding js objects and native classes

        //and you can use default browser's registJSBridgeClient function

        KCRegistMgr.registClass();



        //you can registObject here;

        //KCJSBridge.registObject(new KCTest());



        browser.loadTestPage();

        //browser.loadUrl("http://www.baidu.com");

    }

至此,簡單Demo便可運行起來

固然,你也能夠直接運行官方提供的Demo,能夠按如下說明進行操做

在拉取的源碼根目錄下有個kerkee_example,這裏就是demo。

在根目錄添加local.properties文件,配置你的SDK路徑

sdk.dir=/Users/zihong/android-sdks

ndk.dir=/Users/zihong/android-ndk

把根目錄導入到Android Studio中,這時可直接運行example

相關文章
相關標籤/搜索