簡(jiǎn)單記錄一下打uniapp的ios插件包的過程;因?yàn)楹芫脹]做過ios開發(fā)了,ios方面就是小菜鳥犯了不少低級(jí)bug.簡(jiǎn)單寫一下給自己看~
步驟
- 在ios原生項(xiàng)目里實(shí)現(xiàn)?;?/li>
- 把a(bǔ)pp項(xiàng)目 轉(zhuǎn)為 framework
- 把framework項(xiàng)目轉(zhuǎn)為uniapp插件包
iOS插件開發(fā)教程 - uniapp官網(wǎng)
步驟一
參考文章:
fengarenas/PlaySilentMusicInBackgroundMode
原理:通過播放無聲音樂的模式實(shí)現(xiàn)進(jìn)程保活功能
步驟二
準(zhǔn)備工作
- 新建framework工程,地址選擇插件工程,參考官網(wǎng)教程進(jìn)行配置,去掉.h文件
- 將framework插件工程(自己寫的插件工程)導(dǎo)入到插件開發(fā)主工程(uniPluginDemo)
- 根據(jù)文檔修改工程配置,在主工程配置依賴(dependency & link binary with library),在插件工程里head search path里添加頭文件的路徑
編寫代碼
- 將實(shí)現(xiàn)文件夾FJDeepSleepPreventer拖到項(xiàng)目里
- 項(xiàng)目里新建proxy類和module類(也可以直接復(fù)制示例工程的這兩個(gè)類,但是記得修改文件名和里面的類名)
- 參考fengarenas項(xiàng)目里scene.m里的實(shí)現(xiàn)方法,寫proxy類.
- 以上已實(shí)現(xiàn)進(jìn)程?;?如果需要留調(diào)用函數(shù),則新建一個(gè)單例類,判斷是否需要進(jìn)程?;?在module類里寫函數(shù)修改狀態(tài).在proxy類里根據(jù)狀態(tài)判斷是否調(diào)用.
- cmd+B編譯一下,編譯通過則會(huì)生成.framework文件
打插件包
插件開發(fā)主工程
- 需要新建bundle再把音樂文件拖到bundle里,bundle要放到主工程的bundle文件夾,然后查找路徑需要先找bundle的路徑再找音樂文件的路徑;
- 主開發(fā)工程的后臺(tái)模式要設(shè)置成音樂播放
- 打開HBuilder-uniPlugin-Info.plist文件,添加插件工程的配置;name注意要與插件id一致或以id為前綴
測(cè)試
- 新建uniapp項(xiàng)目. 寫倆按鈕用來調(diào)用方法
- uniapp項(xiàng)目生成本地打包項(xiàng)目,將生成的文件夾拖入到HBuilder-Hello/Pandora/apps下.然后打開 control.xml 文件,將 appid 改成該文件的id(文件名)
- 運(yùn)行Hbuild項(xiàng)目測(cè)試插件
打包
- 桌面上新建 package.json文件,按照官網(wǎng)說明配置
- 按官網(wǎng)要求修改好配置之后cmd+B編譯更新.framework
- 新建文件夾,放入package文件,再新建文件夾起名ios,拖入.framework.
bug
配置插件信息是,name注意要用同工程名的前綴
找不到音樂資源 -> 新建bundle,編譯完之后把bundle拖到主插件工程的bundle文件夾,然后先找bundlePath再找musicPath
進(jìn)程被殺-> 主工程文件要允許后臺(tái)播放