一:開(kāi)發(fā)
讓客戶(hù)滿(mǎn)意是我們工作的目標(biāo),不斷超越客戶(hù)的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶(hù),將通過(guò)不懈努力成為客戶(hù)在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:空間域名、網(wǎng)絡(luò)空間、營(yíng)銷(xiāo)軟件、網(wǎng)站建設(shè)、秦淮網(wǎng)站維護(hù)、網(wǎng)站推廣。
工具xcode、mbuilder
1:在http://www.exmobi.cn/open/resource.html網(wǎng)站下載生成插件包,XKPlugin_Test2_ComponentFactory是使用時(shí)的插件工廠(chǎng),可以改成自己的名稱(chēng)想使用的名稱(chēng):XKPlugin_CPI_ComponentFactory.h;其他文件XKPlugin_Component不要改動(dòng)。
2:XKPlugin_CPI_ComponentFactory.m文件中,修改紅色代碼,CPI_CalendarComponent是自己寫(xiě)的插件類(lèi)。
|
3:新建插件類(lèi),AppPlugin下,新建New Group,名稱(chēng)是CPI_CalendarComponent,在此文件夾下新建文件,
New File...-->Cocoa Touch Class-->Class(class就是插件類(lèi)名稱(chēng),和步驟2中的紅色代碼中的type類(lèi)型一致CPI_CalendarCpmponent)-->SubClass(NSObject)-->Language(Objective-C);
|
4:CPI_CalendarCpmponent.h文件中導(dǎo)入基礎(chǔ)插件類(lèi)(XKPlugin_Component),其中idetifier 是需要返回的回調(diào)值
5:CPI_CalendarCpmponent.m中,
(1)getView是返回視圖,如果有視圖,則返回視圖模式,如果不返回視圖,則只可以直接返回一個(gè)nil;
(2)call方法是js和插件之間調(diào)用的橋梁,第一個(gè)參數(shù)必須是方法名稱(chēng),用來(lái)判斷js調(diào)用的什么方法,最多有起個(gè)參數(shù),前臺(tái)自己傳參,只要不大于7個(gè)就可以,后臺(tái)自己判斷參數(shù)個(gè)數(shù)。call方法格式不要修改,不要在call方法中使用UIAlert方法,容易造成閃退。
|
(3)set方法是獲取前臺(tái)nativecomponent的xml標(biāo)簽中的參數(shù)
(4)setValue是插件的回調(diào),在方法體里執(zhí)行了需要操作的功能之后,回調(diào)一個(gè)值返回
|
5:get方法是可以在mbuilder上可以調(diào)用的返回值。
|
前段頁(yè)面調(diào)用MBuilder
1:body里放xml標(biāo)簽文件,其實(shí)“type”代表的是你寫(xiě)的插件類(lèi),id是自己定義的,在js中使用
varnav=document.getElementById("nav");來(lái)獲取這個(gè)插件,factoryname是寫(xiě)的工廠(chǎng)類(lèi),wid是自己定義的方法,js中使用toGetWid(v)方法來(lái)獲取這個(gè)回調(diào)回來(lái)的值,就是xcode插件中,setValue中和回調(diào)函數(shù)一起返回過(guò)來(lái)的參數(shù)。
|
二:打包
1:新建一個(gè)文件夾,名稱(chēng)為自己定義的工廠(chǎng)類(lèi):XKPlugin_CPI_ComponentFactory
2:將xcode中的代碼通過(guò)編譯,點(diǎn)擊AppPlugin項(xiàng)目-->Product-->Archive。
3:可以在項(xiàng)目的Products目錄下看見(jiàn)一個(gè)libplugin.a文件,右鍵點(diǎn)擊-->Show in Finder,將.a文件復(fù)制到文件夾中。
4:將自己寫(xiě)的工廠(chǎng)類(lèi)XKPlugin_CPI_ComponentFactory.h文件復(fù)制到文件夾中
5:在文件夾中新建一個(gè)framework文件夾,里面新建一個(gè)framework.txt文檔,將插件項(xiàng)目中所需要的freamwork相對(duì)路徑放到.txt文件中,將插件工程中所需要的.a文件或者其他第三方framework庫(kù)復(fù)制到framework文件夾中
6:新建p_w_picpath文件夾,將插件工程中所需要的圖片放到文件夾中
7:新建other文件夾,將項(xiàng)目中一些其他文件放置到這個(gè)文件夾中,比如plist、xml文件(如果說(shuō)插件中需要設(shè)計(jì)到權(quán)限的問(wèn)題,需要在plist文件中添加權(quán)限);
8:新建xib文件夾,將插件工程中需要的xib文件放到文件夾中(返回視圖的插件需要,不然不需要);
9:新建natives文件夾,在文件夾下新建文件夾,名稱(chēng)為插件類(lèi)的名稱(chēng)CPI_CalendarComponent,新建config.xml文件,作為插件的版本信息,可以有有多個(gè)插件,config文件格式如下,其中version是版本號(hào),每次要更新的時(shí)候需要提高版本號(hào),不然會(huì)打包失敗。type是你的插件類(lèi),factoryname是工廠(chǎng)類(lèi),其他信息可以隨便填了。
|
10:所有文件完成之后,壓縮XKPlugin_CPI_ComponentFactory,格式必須是.zip格式的。
11:插件打包好之后登陸到烽火的控制臺(tái),在插件管理中,添加插件,打包成功之后,在mbuilder打包的時(shí)候 可以修改ios的打包配置文件,將自己的插件添加進(jìn)去就可以使用了。
三:遇到的問(wèn)題
Q:打包的時(shí)候,烽火平臺(tái)的教程上,直接選擇了文件夾中的七項(xiàng),然后壓縮,上傳之后顯示打包失??;
A:文件夾中的七個(gè)選項(xiàng),外面還需要加一層工廠(chǎng)類(lèi)的文件夾,然后再壓縮,壓縮格式必須是ZIP格式的。
Q:在IOS平臺(tái)壓縮打包,上傳失敗
A:IOS平臺(tái)打包的時(shí)候,文件夾中會(huì)出現(xiàn)多余的文件,導(dǎo)致打包失敗,將所有的文件拷到windows平臺(tái)壓縮。
Q:第一次上傳成功,第二次失敗
A:一個(gè)可能是修改的插件有問(wèn)題,還有一個(gè)可能是因?yàn)閏onfig.xml文件中version的版本號(hào)沒(méi)有提高導(dǎo)致的。
Q:本次所做的日歷插件中,ios10以下的版本可以正常使用,ios10以上的沒(méi)有反應(yīng)
A:IOS10的版本提高了安全性,在開(kāi)發(fā)的時(shí)候,需要加上權(quán)限,在AppPlugin的文件夾下,新建一個(gè)info.plist文件,或者直接從別處拷過(guò)來(lái),在Information Property List 下添加一個(gè)App TransportSecurity Settings 選項(xiàng),在此項(xiàng)下面加上插件所需要的權(quán)限。然后選中AppPlugin工程,在Build Settings選項(xiàng)下面找到 packaging-->info.plist File 選項(xiàng),將info.plist文件的路徑加上去,并且將這個(gè)plist文件加入到打包文件夾中的other文件夾下。
Q:打包成功之后安裝app,但是打開(kāi)之后會(huì)有閃退現(xiàn)象
A:第一,在MBuilder中打包的項(xiàng)目的時(shí)候,基座版本不要選的太高
第二,在插件的call方法中,不要使用UIAlert方法彈出信息,將所需的信息通過(guò)回調(diào),返回到j(luò)s中, 通過(guò)js去回調(diào)。
Q:使用get方法獲取參數(shù)值,在js中使用nav.get("v"),信息沒(méi)有返回
A:返回的參數(shù)沒(méi)有獲取到,參數(shù)需要操作成功之后通過(guò)自身的回調(diào)函數(shù)回來(lái),js使用時(shí)并沒(méi)有獲取到這個(gè)參數(shù)值,callbackFunction是從set方法中根據(jù)前端<nativecomponent>中自定義的名稱(chēng)獲取的,helper_callJsScript調(diào)用了js中的方法名稱(chēng)。
|
本文題目:烽火exmobile--ios原生插件開(kāi)發(fā)
當(dāng)前鏈接:http://muchs.cn/article4/pjjpie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、全網(wǎng)營(yíng)銷(xiāo)推廣、靜態(tài)網(wǎng)站、定制網(wǎng)站、移動(dòng)網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)