简单记录一下打uniapp的ios插件包的过程;因为很久没做过ios开发了,ios方面就是小菜鸟犯了不少低级bug.简单写一下给自己看~
步骤
- 在ios原生项目里实现保活
- 把app项目 转为 framework
- 把framework项目转为uniapp插件包
步骤一
参考文章:
fengarenas/PlaySilentMusicInBackgroundMode
原理:通过播放无声音乐的模式实现进程保活功能
步骤二
准备工作
- 新建framework工程,地址选择插件工程,参考官网教程进行配置,去掉.h文件
- 将framework插件工程(自己写的插件工程)导入到插件开发主工程(uniPluginDemo)
- 根据文档修改工程配置,在主工程配置依赖(dependency & link binary with library),在插件工程里head search path里添加头文件的路径
编写代码
- 将实现文件夹FJDeepSleepPreventer拖到项目里
- 项目里新建proxy类和module类(也可以直接复制示例工程的这两个类,但是记得修改文件名和里面的类名)
- 参考fengarenas项目里scene.m里的实现方法,写proxy类.
- 以上已实现进程保活.如果需要留调用函数,则新建一个单例类,判断是否需要进程保活,在module类里写函数修改状态.在proxy类里根据状态判断是否调用.
- cmd+B编译一下,编译通过则会生成.framework文件
打插件包
插件开发主工程
- 需要新建bundle再把音乐文件拖到bundle里,bundle要放到主工程的bundle文件夹,然后查找路径需要先找bundle的路径再找音乐文件的路径;
- 主开发工程的后台模式要设置成音乐播放
- 打开HBuilder-uniPlugin-Info.plist文件,添加插件工程的配置;name注意要与插件id一致或以id为前缀
测试
- 新建uniapp项目. 写俩按钮用来调用方法
- uniapp项目生成本地打包项目,将生成的文件夹拖入到HBuilder-Hello/Pandora/apps下.然后打开 control.xml 文件,将 appid 改成该文件的id(文件名)
- 运行Hbuild项目测试插件
打包
- 桌面上新建 package.json文件,按照官网说明配置
- 按官网要求修改好配置之后cmd+B编译更新.framework
- 新建文件夹,放入package文件,再新建文件夹起名ios,拖入.framework.
bug
配置插件信息是,name注意要用同工程名的前缀
找不到音乐资源 -> 新建bundle,编译完之后把bundle拖到主插件工程的bundle文件夹,然后先找bundlePath再找musicPath
进程被杀-> 主工程文件要允许后台播放