1、第一步,要先建立一个支持PhoneGap(Cordova)的android工程
创新互联技术团队十载来致力于为客户提供成都网站制作、做网站、品牌网站建设、全网营销推广、搜索引擎SEO优化等服务。经过多年发展,公司拥有经验丰富的技术团队,先后服务、推广了上1000家网站,包括各类中小企业、企事单位、高校等机构单位。
因为这个插件本质上是安卓插件,用于PhoneGap,因此,要二者支持才行,所以我们要建立一个支持PhoneGap(Cordova)的android工程,插件在这个工程里面编写。
我们采用cordova CLI来进行工程创建。这样会比较方便。否则要先创建安卓工程,然后手动将cordova的东西拷到工程文件夹内,还要修改代码,麻烦得很。
1)先创建一个cordova项目
在命令行方式下:
[plain] view
plaincopyprint?
cordova create hello com.example.test HelloWorld
cordova create hello com.example.test HelloWorld
这样就在当前路径,创建了一个名为hello的文件夹,里面是cordova的各种文件
2)设置cordova支持android平台
在命令行方式下:
[plain] view
plaincopyprint?
cd hello
cordova platform add android
cd hello
cordova platform add android
这样在hello\platforms文件夹下,多了一个android子目录,这个就是我们要的支持phoegap的安卓工程了,插件可以在这个工程里面编写。
2、编写插件
1)Hello.java
用eclipse打开该工程
在src下新建包及class
Hello.java:
2)config.xml
修改res/xml/config.xml
在节点widget里加入:
[html] view
plaincopyprint?
feature name="Hello"
param name="android-package" value="com.example.test.plugin.Hello" /
/feature
3、调用插件
调用是javascript唱独角戏。
1)添加 js/plugin.js
var helloPlugin = {
say: function(successCallback, errorCallback) {
cordova.exec(
successCallback, // success callback function
errorCallback, // error callback function
'Hello', // mapped to our native Java class called "CalendarPlugin"
'sayHello', // with this action name
[] // and this array of custom arguments to create our entry
);
}
}
2)修改js/index.js
修改部分主要在结尾部分
3)修改首页index.html
script type="text/javascript" src="cordova.js"/script
script type="text/javascript" src="js/index.js"/script
script type="text/javascript" src="js/plugin.js"/script
script type="text/javascript"
app.initialize();
/script
至此,就完成了一个for phonegap的安卓插件的编写和调用过程。
经过我们的不懈努力,CocoaPods的私有库写完了,现在进入集成阶段了,倘若对方工程也在使用CocoaPods,我们也乐意开放源码,那就是开心愉快了,倘若对方工程还是个老古董,我们也不乐意开放源码,这时候就需要我们自行打包了。我们也知道打包又要考虑架构考虑真机和模拟器,很繁琐,CocoaPods Packager就可以来拯救我们。
Packaging Closed Source SDKs
CocoaPods Packager
打开终端,执行下面命令:
这边提供一个懒人方法,把命令写成Shell可执行文件放在目录下,就不用每次都敲命令了:
就职于甜橙金融(翼支付)信息技术部,负责iOS客户端开发
欢迎大家移步本人的小博客 ,不定时更新
打开 Xcode,创建一个新的Framework工程,然后点击 Next
输入插件工程名称(建议使用一个性化的前缀,避免与其他人的插件包名冲突),其他项不需要修改保持工程默认填充的即可,然后点击Next
然后选中工程名,在TARGETS-Build Settings中,将 Mach-O Type 设置为 Static Library 如下图所示
打开 iOSSDK/HBuilder-uniPluginDemo工程目录,双击目录中的HBuilder-uniPlugin.xcodeproj 文件运行插件开发主工程
在 Xcode 项目左侧目录选中主工程名,然后点击右键选择Add Files to “HBuilder-uniPlugin” ...
然后选择您刚刚创建的插件工程路径中,选中插件工程文件,勾选 Create folder references 和 Add to targets 两项,然后点击Add
然后在 Xcode 项目左侧目录选中主工程名,在TARGETS-Build Phases-Dependencies中点击+
在弹窗中选中插件工程,如图所示,然后点击Add,将插件工程添加到Dependencies中
此时可以看到 Dependencies 和 Link Binary With Libraries 都添加了插件工程,如下图所示
扩展原生功能有两种方式:
module:不需要参与页面布局,只需要通过 API 调用原生功能,比如:获取当前定位信息、数据请求等功能,通过扩展module的方式来实现;
component:需要参与页面布局,比如:map、image等需要显示UI的功能,通过扩展component即组件的方法来实现;
新建TestModule类,继承 DCUniModule,引入 DCUniModule.h 头文件。
然后在 TestModule.m 文件中添加实现方法
选中工程中的HBuilder-uniPlugin-Info.plist文件右键-Open As-Source Code找到dcloud_uniplugins节点,copy下面的内容添加到dcloud_uniplugins节点下,按插件的实际信息填写对应的项
在 uni-app 项目中调用 module 方法
生成 uni-app 本地打包资源
首先需要生成本地打包资源,在 HBuilderX 中选您的 uni-app 工程,右键-发现-原生App-本地打→生成本地打包App资源
项目编译完成后会在 HBuilderX 控制台输出资源存路径,点击路径会自动打开资源所在文件夹
接下来,将应用资源导入到插件开发主工程的 HBuilder-Hello/Pandora/apps/ 中,如下图所示,直接拖进去即可
如下图所示,将编译工程选择为插件项目(DCTestUniPlugin),运行设备选择 Generic iOS Device
新建一个 package.json 文件,根据插件实际情况填写插件配置信息
然后以插件id为名新建一个文件夹,将编辑好的 package.json 放进去,然后在文件夹中在新建一个 ios (小写)文件夹,将刚刚生成的依赖库(DCTestUniPlugin.framework)copy 到 ios 根目录,这样我们的插件包就构建完成了,如下图所示
HBuilderX 的 uni-app 项目创建中“nativeplugins”目录(如不存在则创建)将插件配置到uni-app项目下的“nativeplugins”目录
uni-app原生插件本地配置
将原生插件配置到uni-app项目的“nativeplugins”下,还需要在manifest.json文件的“App原生插件配置”项下点击“选择本地插件”,在列表中选择需要打包生效的插件:
兼容iOS8插件:
1、NoSlowAnimations
这个可以说是必装,给系统加速,让原来缓慢动画变快。有点副作用,就是聊天工具里的表情也变快放了,够逗比。
2、Zeppelin
美化运营商图标的,让不再千篇一律的中国移动/联通/电信,我的运营商我做主!
3、Alkaline
美化电池图标,内置多种主题,让电池图标不那么巨大。
4、DockShift
设置最下面一行图标的背景,就是我们常说的Dock。
5、Barrel
让翻动页面时,图标有3D特效,比较酷炫的插件,值得一试。
6、Flex2
知道八门神器吗?它的作用类型,不过有些程序还是有兼容问题。
7、Virtual Home
解放HOME键的神器,你只需要摸TouchID,就可以和按下去一样的效果,不过会导致iPhone6和6Plus的双触TouchID屏幕下降功能失效。
8、f.lux
调节屏幕的色温,更好的保护眼睛。
9、SwipeSelection
针对iOS原生键盘的插件,可以让你在键盘上滑动来移动输入的光标,终于不用忍受按住出现放大镜的繁琐操作了。
10、换字体BytaFont 2
iOS8的字体和iOS7.1.2的兼容,中文字体是完全没有问题的。
11、AndroidLock XT
和安卓机一样,为锁屏解锁增加快捷功能,秒变安卓的感觉。
12、Apple File Conduit "2"
必装插件之一,使用iTools管理越狱文件的根本,不过还有bug,重启之后需要重新安装一次,否则iTools还是会提示未越狱。
13、BatteryLife
电池信息查看的插件,主要是可以看到电池的循环次数和健康度,仅供参考。
14、BetterFolders
桌面文件夹增强插件,可以开启4乘4模式图标,允许文件夹中嵌套文件夹,支持双指合拢退出文件夹。
15、BetterPowerDown
关机功能增强插件,当你按下电源键之后,不光有滑动关机选择,还有滑动重启、注销功能,建议安装PowerAPP,节省电源键一些。
16、Bloard
功能就是让自带的输入法键盘变成黑色款式,看上去更加美观一些。
17、Blur Remover
将密码解锁的界面模糊效果替换成为透明的,但是现在有Cydia是不能设置密码的,请大家自行注意啊!
18、BlurBar
Blurbar允许用户在设置里选择状态栏大小、模糊程度、不透明度调节、更换颜色等操作,以此来配合壁纸的显示效果,使主屏界面更加美观。
19、BlurredMusicApp
可以将iphone自带的音乐播放程序界面变成黑色磨砂玻璃效果,本人5S亲测可用,无论是自带音乐播放还是收听ITUNES RADIO都有效果。唯一的遗憾好像是没有设置选项可以调节。
20、CCHide
如果觉得控制中心里的快捷启动、AirDrop或者其他等等,不常用到觉得碍眼的,可以试试这个插件隐藏掉。
21、cylinder
提供45种炫酷的翻页效果,各种充满想象力的动态效果尽在其中。
22、Disable Parallax Effect
在不影响其他动画效果的前提下,去除桌面的浮动效果,减少电量消耗。
23、Effects
为自带的相机提供更多的拍照特效。
24、FakeClockUp
效果类似Noslowanimation,不过能加速的地方更多,老机器可以尝试。
25、Folder Customizer
支持对文件夹背景颜色和透明度进行单独设置,美化爱好者可以尝试。
26、iCleaner
清理系统的垃圾文件,小容量设备可以试试看,建议不要随意删除系统的文件。
27、Icon Renamer
给桌面的图标改显示的名字,需要按住之后双击,不过好像还是有点BUG。
28、LabelShift
将桌面上图标下面的文字向上或者向下调整,属于美化一类。
29、LocationFaker
定位虚拟插件,可以让你随时去世界任何地方发微博微信,不过收费。
30、Lock Screen Tool
用来修改锁屏时解锁的文字,还可以设置锁屏时间和日期的显示,让锁屏简洁美观。
31、Lockify Pro
和上面一款应用类似,但是可以设置的更多,请自己探索吧。
32、LockKeyboard
将锁屏风格的键盘应用到整个系统中。
33、LockSpeed
在锁屏界面增加快捷拨号功能,对于经常打电话的人有一定帮助。
34、MobileTSS
在iOS上直接进行网络调试的工具,开发者有用。
35、Nitrous
让第三方浏览器支持苹果自家的加速引擎,加快网页打开的速度。
36、No Glint
去除锁屏是滑动解锁几个字的闪光效果,美化爱好者可以体验。
37、NoCameraGrabber
去除锁屏界面的快捷拍照图标,但是功能得到保留。
38、NoPageDots7
去除主屏幕上的页数符号显示。
39、NoCoverFlow7
屏蔽封面流的功能,感觉完全没必要。
40、NoUpdateCircles
取消app store中安装及更新时那个转的蓝圈。
41、PasswordPilot
帮助你记录所有用来登陆并购买应用的苹果ID,方便切换。
42、SleekCode
设置解锁屏幕输入密码时背景图案的透明度和密码键盘的背景,对于美化爱好者可以试验。
支持ios8.12系统的暂时还不清楚,之前是可以通过插件包单独导出,再放入安装目录重启安装。 插件在下载时会缓存到 /var/mobile/Library/Caches/com.saurik.Cydia/archives 然后再安装,在下载安装过程中直接提取(Cydia在安装完后先别急点击注销或重启,等提取完了再点),已安装的可以选择再次安装,在安装过程中提取,其他软件等数据的话都可以用pc端的同步助手备份数据,详细的可以查找用同步助手备份数据教程,希望可以帮助到你,望采纳……