Cordova 开发一个iOS app

最近公司开发涉及到Cordova,记录一下学习历程。

1.首先Cordova在实现iOS原生和js的交互是通过插件开发,可以在原生的iOS端新建继承于CDVPlugin的类,在该类的h文件中暴露插件的方法,然后在m文件中写具体的实现。

如果参数通过检查,它返回一个具有OK状态的PluginResult,传入原始的echo字符串。 最后,它将结果发送到self.commandDelegate,它在JavaScript端执行exec方法的成功或失败回调。 如果调用成功回调,它将传入echo参数。

2.还需要在congfig。xml中进行相应的插件配置,例如

<feature name = "FirstPhotoPlugin">

        <param name = "iOS-package" value="TKFirstPhotoPlugin"/>

    </feature>

 

    <feature name = "ManagerPlugin">

        <param name = "iOS-package" value = "TKAllManagerPlugin"/>

    </feature>

 

    <feature name = "CommandPlugin">

        <param name = "iOS-package" value = "TKCommandPlugin"/>

    </feature>

 

    <feature name = "MediaPlugin">

        <param name = "iOS-package" value = "TKMediaPlugin"/>

    </feature>

3.会在js上开发类似的plugin文件作为桥梁,例如

cordova.define("cordova-plugin-Pactera.Pactera", function(require, exports, module) {

               var exec = require('cordova/exec');

               module.exports = {

               

               GetSpeechRecognizeData:function(RequestData,onSuccess,onError) {

               alert("3333333");

               exec(onSuccess,onError,"SpeechRecognize","pacteraSpeechRecognizeData",[RequestData]);

               },

               

               getCameraData:function(RequestData, onSuccess, onError){

               exec(onSuccess,onError,"FirstPhotoPlugin","takeTheSystemPhoto",[RequestData]);

               },

               

               getStartPage:function(RequestData, onSuccess, onError){

               exec(onSuccess,onError,"FirstPhotoPlugin","takeStartPage",[RequestData]);

               },

               

               getRequestBody:function(RequestData, onSuccess, onError){

               exec(onSuccess,onError,"CommandPlugin","takeRequestBody",[RequestData]);

               },

               

               TaskList:function(RequestData, onSuccess, onError){

               exec(onSuccess,onError,"ManagerPlugin","MyManagerListPlugin",[RequestData]);

               },

               

               customCamera:function(RequestData, onSuccess, onError){

               exec(onSuccess,onError,"FirstPhotoPlugin","thePersonFaceCream",[RequestData]);

               },

               

               getLocationData:function(RequestData, onSuccess, onError){

               exec(onSuccess,onError,"FirstPhotoPlugin","theLocationLoad",[RequestData]);

               },

               

               playVideo:function(RequestData, onSuccess, onError){

               exec(onSuccess,onError,"MediaPlugin","playTheMediaVideo",[RequestData]);

               },

               

               uploadVideo:function(RequestData, onSuccess, onError){

               exec(onSuccess, onError,"MediaPlugin","upTheMediaVideo",[RequestData]);

               },

               

               downloadFile:function(RequestData, onSuccess, onError){

                   exec(onSuccess, onError,"MediaPlugin","downloadTheMediaVideo",[RequestData])

               },

        };

});

 

 

4.然后在Cordova-plugins.js上进行相应的文件配置,例如:

cordova.define('cordova/plugin_list', function(require, exports, module) {

               

               module.exports = [

                                 

                                 {

                                 "file": "plugins/cordova-plugin-Pactera/Pactera.js",

                                 "id": "cordova-plugin-Pactera.Pactera",

                                 "clobbers": [

                                              "Pactera"

                                              ]

                                 },

                                 {

                                 "file": "plugins/cordova-plugin-camera/www/CameraConstants.js",

                                 "id": "cordova-plugin-camera.Camera",

                                 "pluginId": "cordova-plugin-camera",

                                 "clobbers": [

                                              "Camera"

                                              ]

                                 },

                                 {

                                 "file": "plugins/cordova-plugin-camera/www/CameraPopoverOptions.js",

                                 "id": "cordova-plugin-camera.CameraPopoverOptions",

                                 "pluginId": "cordova-plugin-camera",

                                 "clobbers": [

                                              "CameraPopoverOptions"

                                              ]

                                 },

                                 {

                                 "file": "plugins/cordova-plugin-camera/www/Camera.js",

                                 "id": "cordova-plugin-camera.camera",

                                 "pluginId": "cordova-plugin-camera",

                                 "clobbers": [

                                              "navigator.camera"

                                              ]

                                 },

                                 {

                                 "file": "plugins/cordova-plugin-camera/www/ios/CameraPopoverHandle.js",

                                 "id": "cordova-plugin-camera.CameraPopoverHandle",

                                 "pluginId": "cordova-plugin-camera",

                                 "clobbers": [

                                              "CameraPopoverHandle"

                                              ]

                                 }

 

                                 ];

               module.exports.metadata = 

               // TOP OF METADATA

               {

               "cordova-plugin-whitelist": "1.2.2",

               "cordova-plugin-Pactera":"1.0.0"

               };

               // BOTTOM OF METADATA

               });

 

 

 

 

转载于:https://my.oschina.net/u/2329800/blog/1359099

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值