ios原生后台进程保活打uniapp插件包

简单记录一下打uniapp的ios插件包的过程;因为很久没做过ios开发了,ios方面就是小菜鸟犯了不少低级bug.简单写一下给自己看~

步骤

  1. 在ios原生项目里实现保活
  2. 把app项目 转为 framework
  3. 把framework项目转为uniapp插件包

iOS插件开发教程 - uniapp官网

步骤一

参考文章:

fengarenas/PlaySilentMusicInBackgroundMode

原理:通过播放无声音乐的模式实现进程保活功能

步骤二

准备工作

  1. 新建framework工程,地址选择插件工程,参考官网教程进行配置,去掉.h文件
  2. 将framework插件工程(自己写的插件工程)导入到插件开发主工程(uniPluginDemo)
  3. 根据文档修改工程配置,在主工程配置依赖(dependency & link binary with library),在插件工程里head search path里添加头文件的路径

编写代码

  1. 将实现文件夹FJDeepSleepPreventer拖到项目里
  2. 项目里新建proxy类和module类(也可以直接复制示例工程的这两个类,但是记得修改文件名和里面的类名)
  3. 参考fengarenas项目里scene.m里的实现方法,写proxy类.
  4. 以上已实现进程保活.如果需要留调用函数,则新建一个单例类,判断是否需要进程保活,在module类里写函数修改状态.在proxy类里根据状态判断是否调用.
  5. cmd+B编译一下,编译通过则会生成.framework文件

打插件包

插件开发主工程

  1. 需要新建bundle再把音乐文件拖到bundle里,bundle要放到主工程的bundle文件夹,然后查找路径需要先找bundle的路径再找音乐文件的路径;
  2. 主开发工程的后台模式要设置成音乐播放
  3. 打开HBuilder-uniPlugin-Info.plist文件,添加插件工程的配置;name注意要与插件id一致或以id为前缀

测试

  1. 新建uniapp项目. 写俩按钮用来调用方法
  2. uniapp项目生成本地打包项目,将生成的文件夹拖入到HBuilder-Hello/Pandora/apps下.然后打开 control.xml 文件,将 appid 改成该文件的id(文件名)
  3. 运行Hbuild项目测试插件

打包

  1. 桌面上新建 package.json文件,按照官网说明配置
  2. 按官网要求修改好配置之后cmd+B编译更新.framework
  3. 新建文件夹,放入package文件,再新建文件夹起名ios,拖入.framework.

bug

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

  2. 找不到音乐资源 -> 新建bundle,编译完之后把bundle拖到主插件工程的bundle文件夹,然后先找bundlePath再找musicPath

  3. 进程被杀-> 主工程文件要允许后台播放

你可能感兴趣的:(ios原生后台进程保活打uniapp插件包)