最近公司有使用APICloud发开的需求,需要我这边提供一些模块包得封装。因为没有也是刚接触APICloud,所以也就在看官方文档 。下面讲一讲我再使用过程中得一点点东西。 首先,下载官方SDK,下载最新版本的模块开发SDK,找到里面的ModulesDevProject_iOSzip,这里面包含ModuleDemo、ModulesDevProject和说明文件。ModuleDemo是一个官方的模块包封装和静态库生成的工程。ModulesDevProject则是可以让我们自己调试的工程。模块类实现21 新建模块类新建一个UZModuleDemo类,继承于UZModule类,其中UZModule类为模块的基类。模块开发过程中文件命名时提倡加前缀,以避免和其它模块冲突。22 模块生命周期当前端js中调用模块方法时,模块首先会被初始化,引擎会调用其 - (id)initWithUZWebView:(UZWebView )webView 方法;当模块所在的页面被销毁时,引擎会调用其 - (void)dispose 方法。23 启动方法如果模块需要在应用启动的时候就执行一些 *** 作,那么首先得在modulejson里面配置launchClassMethod,例如配置的方法为launch,然后在模块里面实现该方法,当应用启动时该方法就会被执行。+ (void)launch{ //在modulejson里面配置的launchClassMethod,必须为类方法,引擎会在应用启动时调用配置的方法,模块可以在其中做一些初始化 *** 作;下面代码为注册一个实现了UIApplicationDelegate协议方法的对象,该对象中方法就会在需要的时候被调用,通过此方式可以实现第三方应用回调url解析、推送等常用功能 //UZApphandler 基础Object基类 可以做一些需要AppDelegate 实现的初始化 如初始化推送的AppKey等等 // UZAppHandler appHandler = [[UZAppHandler alloc] init]; // [theApp addAppHandle:appHandler];}24 方法调用实现 - (void)showAlert:(NSDictionary )paramDict 方法,用于显示一个对话框,该方法需要在modulejson里面配置,然后在前端js里面才可以调用该方法。如果前端调用该方法时传入了一个function,那么在这里可以通过cbId字段获取该function对应的id,然后在需要的时候把数据通过该function回调给js。- (void)showAlert:(NSDictionary )paramDict { _cbId = [paramDict integerValueForKey:@"cbId" defaultValue:-1]; NSString message = [paramDict stringValueForKey:@"msg" defaultValue:nil]; UIAlertView alert = [[UIAlertView alloc] initWithTitle:nil message:message delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"确定", nil]; [alert show];}25 回调我们在这里实现UIAlertViewDelegate中的 - (void)alertView:(UIAlertView )alertView didDismissWithButtonIndex:(NSInteger)buttonIndex 方法,将用户点击的按钮index回调给js端,代码如下:- (void)alertView:(UIAlertView )alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { if (_cbId >= 0) { NSDictionary ret = @{@"index":@(buttonIndex)}; [self sendResultEventWithCallbackId:_cbId dataDict:ret errDict:nil doDelete:YES]; }}当然,也可以定义自己的方法method,同时要修改modulejson的配置 注意不要[+]以及引号的英 汉。{ "name":"moduleDemo",//模块包名一致 "class":"UZModuleDemo",//模块类名 "methods":["showAlert","method"],//自己定义的方法名 "launchClassMethod":"launch"//是否执行launc类方法}找到widget目录下html目录里面的module-conhtml,我们在这里面调用showAlert等方法,如下var param = { msg:"Hello App!"};var demo = apirequire('moduleDemo');//模块包名称 (modulejson 这里 模块包名称 三者要一致)demoshowAlert(param, callBack);//传参数调用方法 和回调function callBack(ret, err){ var msg; if (retindex == 0){ msg = "点击了第一个按钮"; } else { msg = "点击了第二个按钮"; } apitoast({ msg:msg });}调试好了之后,把添加 修改的文件 加入ModuleDemo的静态库工程(也可以自己创建),去掉没用的,选择iOS device编译,复制静态库文件。 创建文件夹名称和模块包一致,里面在创建target文件夹,把静态库文件粘贴进来,加入用到了第三方的Framework和bundle束也放进来。 target同级目录粘贴modulejson文件,返回压缩成zip文件 获取在apicloud创建的应用的Id 修改widget下configxml 顶部的id,复制压缩widget文件。在apicloud控制台,转到该应用,选择代码部分,上传widgetzip 跳转模块中自定义模块上传模块包,名称必须和模块包名称一致。保存 编译,如果没有意外,你就能扫二维码 下载安装你的应用到手机了。 这里默认的时apicloud提供的证书,加入要改自己的就看证书栏目,都有教程的。Mark!
那个一般都没有用,API那个接口可以外部调用进行vps管理而不需要登陆服务商提供的VPS管理后台,需要自己编程序,一般用不上。 TUN/TAP 和PPP是为了搭建V、P、N服务所需要的功能,一般默认都是关闭的。
需要响应onclick的元素,加上tapmode='xxx'属性即可,xxx可以是一个css样式,当该元素touchstart touchmove的时候就会展现xxx样式,tapmode还具有 速点击事件的功能,消除了JS中标准click事件的300毫秒延迟;有tapmode已经很完善了,如果需要,可以自行在代码中监听相应元素的touch事件。
1、模块上传到网站。 (控制台 --> 模块 --> 自定义模块) 2、把使用模块的js代码widget 包上传到网站 (控制台 --> 代码 -->上传代码) 3、本地测试,还是云编译 :(本地测试,是不包含模块的, 需要云编译, 勾选模块, 云编译,扫描生成的二维码 安装)
以上就是关于apicloud ios 怎么上架全部的内容,包括:apicloud ios 怎么上架、APICloud 社区tapmode="active"表示什么意思是否有api、获取apicloud编译的是正式版还是测试版等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)