ios原生后臺(tái)進(jìn)程保活打uniapp插件包

簡(jiǎn)單記錄一下打uniapp的ios插件包的過程;因?yàn)楹芫脹]做過ios開發(fā)了,ios方面就是小菜鳥犯了不少低級(jí)bug.簡(jiǎn)單寫一下給自己看~

步驟

  1. 在ios原生項(xiàng)目里實(shí)現(xiàn)?;?/li>
  2. 把a(bǔ)pp項(xiàng)目 轉(zhuǎn)為 framework
  3. 把framework項(xiàng)目轉(zhuǎn)為uniapp插件包

iOS插件開發(fā)教程 - uniapp官網(wǎng)

步驟一

參考文章:

fengarenas/PlaySilentMusicInBackgroundMode

原理:通過播放無聲音樂的模式實(shí)現(xiàn)進(jìn)程保活功能

步驟二

準(zhǔn)備工作

  1. 新建framework工程,地址選擇插件工程,參考官網(wǎng)教程進(jìn)行配置,去掉.h文件
  2. 將framework插件工程(自己寫的插件工程)導(dǎo)入到插件開發(fā)主工程(uniPluginDemo)
  3. 根據(jù)文檔修改工程配置,在主工程配置依賴(dependency & link binary with library),在插件工程里head search path里添加頭文件的路徑

編寫代碼

  1. 將實(shí)現(xiàn)文件夾FJDeepSleepPreventer拖到項(xiàng)目里
  2. 項(xiàng)目里新建proxy類和module類(也可以直接復(fù)制示例工程的這兩個(gè)類,但是記得修改文件名和里面的類名)
  3. 參考fengarenas項(xiàng)目里scene.m里的實(shí)現(xiàn)方法,寫proxy類.
  4. 以上已實(shí)現(xiàn)進(jìn)程?;?如果需要留調(diào)用函數(shù),則新建一個(gè)單例類,判斷是否需要進(jìn)程?;?在module類里寫函數(shù)修改狀態(tài).在proxy類里根據(jù)狀態(tài)判斷是否調(diào)用.
  5. cmd+B編譯一下,編譯通過則會(huì)生成.framework文件

打插件包

插件開發(fā)主工程

  1. 需要新建bundle再把音樂文件拖到bundle里,bundle要放到主工程的bundle文件夾,然后查找路徑需要先找bundle的路徑再找音樂文件的路徑;
  2. 主開發(fā)工程的后臺(tái)模式要設(shè)置成音樂播放
  3. 打開HBuilder-uniPlugin-Info.plist文件,添加插件工程的配置;name注意要與插件id一致或以id為前綴

測(cè)試

  1. 新建uniapp項(xiàng)目. 寫倆按鈕用來調(diào)用方法
  2. uniapp項(xiàng)目生成本地打包項(xiàng)目,將生成的文件夾拖入到HBuilder-Hello/Pandora/apps下.然后打開 control.xml 文件,將 appid 改成該文件的id(文件名)
  3. 運(yùn)行Hbuild項(xiàng)目測(cè)試插件

打包

  1. 桌面上新建 package.json文件,按照官網(wǎng)說明配置
  2. 按官網(wǎng)要求修改好配置之后cmd+B編譯更新.framework
  3. 新建文件夾,放入package文件,再新建文件夾起名ios,拖入.framework.

bug

  1. 配置插件信息是,name注意要用同工程名的前綴

  2. 找不到音樂資源 -> 新建bundle,編譯完之后把bundle拖到主插件工程的bundle文件夾,然后先找bundlePath再找musicPath

  3. 進(jìn)程被殺-> 主工程文件要允許后臺(tái)播放

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容