APICloud App开发上手经验之模块调用

简介: APICloud 提供了很多方便好用的模块,只要学习自己想要使用的模块的文档,然后调用模块就可以使用了。使用模块可以大大减少自己需要写的代码量,而且对于新手来说,在自己开发经验不足的情况下,也许并不能胜任一些功能的开发,这时候使用模块就可以让自己的 APP 也拥有这些功能了,看到自己的 APP 也具有了丰富的功能会比较有成就感,不会使我们的学习感到枯燥,也不容易感觉学习太难而因此止步。

继上次简单分享了使用 APICloud 开发APP的全流程后,今天来分享一下如何使用模块。APICloud 提供了很多方便好用的模块,只要学习自己想要使用的模块的文档,然后调用模块就可以使用了。使用模块可以大大减少自己需要写的代码量,而且对于新手来说,在自己开发经验不足的情况下,也许并不能胜任一些功能的开发,这时候使用模块就可以让自己的 APP 也拥有这些功能了,看到自己的 APP 也具有了丰富的功能会比较有成就感,不会使我们的学习感到枯燥,也不容易感觉学习太难而因此止步。

这篇文章使用了一个简单的免费模块 PersonalCenter,首先我们打开 APICloud 官网的控制台创建一个项目,创建项目的方法相信大家都已经熟悉了,这里就不再赘述。创建好项目之后,点击上方导航栏的模块 Store,然后搜索个人信息,之后就看到了 PersonalCenter 模块。点进去之后再点立即使用,然后选择自己的应用就好了,一定要选择自己现在要开发的项目,不要选错哦。

点进去之后再点立即使用,然后选择自己的应用就好了,一定要选择自己现在要开发的项目,不要选错哦。模块添加成功之后,我们返回来这个页面,点击下面的小字 “查看模块文档”,把这个文档一直开着,一会回来还会用到。模块文档里面详细介绍了这个模块的用法。

之后我们就可以创建证书,编译自定义 Loader 了,这次我们依然选择 Android 版,具体操作相信大家已经会了,如果有不了解的朋友可以看一下上篇文章:

把下载好的自定义 Loader 拖入逍遥模拟器安装好,打开我们的开发工具 APICloud Studio3, 把项目用 WIFI 同步到模拟器后,我们进行一个设置,点击开发工具左下角的齿轮,然后点击设置,在设置界面里点击扩展。然后勾选 Auto Sync 这个选项,这样我们每次保存后,项目就会自动同步到模拟器中,更改完代码后不用再每次都手动的进行同步了,非常方便的小功能。

在使用模块之前,我们找到入口页面 main.html 的 apiready = function () 方法,把里面的内容清空。这个方法里面的属性内容就是最初页面上显示的那些属性,我们把里面的属性内容清空,之后把 body 里的 Hello APP 删除或者注释一下,然后保存。现在发现模拟器中的应用已经是空白了。

然后我们找到刚才的模块文档,可以看到这个模块分别有六个方法,分别是打开、更新、关闭、设置选中按钮、显示和隐藏。

我们先试着使用一下 open 方法,open 方法中介绍了许多属性,这时我们为了快速展现成果,先不管这些属性是什么,直接往下看,找到 open 方法下面的事例代码,直接用事例代码来做一个演示。

这时我们把文档中 open 方法下方的示例代码粘贴进这个方法里,一定要找准哦。粘贴进来之后我们可以鼠标右键,点击格式化文档,让代码看着条理更清楚一些。再次强调一下是粘贴到 main.html 页面的 apiready = function () 方法中的大括号里。

示例代码
var personalCenter = api.require('personalCenter');var btnArray = [{ 'bgImg': 'widget://res/personalCenter/personal_btn_nor.png', 'selectedImg': 'widget://res/personalCenter/personal_btn_sele.png', 'lightImg': 'widget://res/personalCenter/personal_btn_light.png', 'title': '好友', 'count': '5'}, { 'bgImg': 'widget://res/personalCenter/personal_btn_nor.png', 'selectedImg': 'widget://res/personalCenter/personal_btn_sele.png', 'lightImg': 'widget://res/personalCenter/personal_btn_light.png', 'title': '回贴', 'count': '240'}, { 'bgImg': 'widget://res/personalCenter/personal_btn_nor.png', 'selectedImg': 'widget://res/personalCenter/personal_btn_sele.png', 'lightImg': 'widget://res/personalCenter/personal_btn_light.png', 'title': '主题', 'count': '27'}];var count = 382;var y = 44;
personalCenter.open({ 'y': y, 'imgPath': 'widget://res/personalCenter/d7d1d308fe165b984c09728e7118e9f1.jpg', 'placeholderImg': 'widget://res/common/placeHolder.png', 'userName': 'APICloud', 'count': count, 'modButton': { 'bgImg': 'widget://res/personalCenter/mod_normal.png', 'lightImg': 'widget://res/personalCenter/mod_click.png'

},
fixedOn: api.frameName,    'btnArray': btnArray

}, function(ret, err) { / 头像修改按钮. /

if (btnArray.length === ret.click) {
    api.confirm({
        title: '聊天盒子',
        msg: '您想要从哪里选取图片 ?',
        buttons: ['优雅自拍', '相册收藏', '取消']
    }, function(ret, err) {            var sourceType = 'album';            if (3 == ret.buttonIndex) { // 取消
            return;
        }            if (1 == ret.buttonIndex) { // 打开相机
            sourceType = 'camera';
        }
        api.getPicture({
            sourceType: sourceType,
            encodingType: 'png',
            mediaValue: 'pic'
        }, function(ret, err) {                if (ret) {
                personalCenter.updateValue({
                    imgPath: ret.data,
                    count: count
                });
            }
        });
    });        return;
}    var msg;    /* 修改按钮. */
if (btnArray.length + 1 == ret.click) {
    msg = '您没有修改权限!';
}    if (btnArray.length + 2 == ret.click) {
    msg = '您没有设置权限!'
}    if (btnArray.length == ret.click) {
    btn = btnArray[ret.click];
    msg = btn.title + ' 数量为 ' + btn.count
}
api.toast({
    msg: msg,
    duration: 1000,
    location: 'top'
});

});

保存一下自动同步,可以看到模拟器中应用出现了这个界面,界面的大体轮廓出来了,但是并没有图片,这是因为代码中的图片我们本地里并没有,我们需要给代码里加一张我们本地的图片。

这时我们就要返回到前面了解一下 open 方法里面的属性了。我们看到三个 bgImg 属性都是修改按钮的背景图片,并不是总体的背景图片地址,继续往下找,在 open 方法的事例代码中看到了 imgPath 这个属性,想必这个就是总体的图片地址了。我们把它替换成本地的图片,首先找一张图片复制到左侧文件列表中的 image 中,这时再修改图片路径:

替换前:

替换后(我的图片名称是 center):

保存一下,这次我们的应用就有背景图片了。

简单的更换了一下背景图片,头像也换了,可以看到这个模块的背景图片是模糊化之后的头像图片。这时在图片和顶部之间有一定的空白,应该要把模块整体向上平移一些,在文档中找到管理位置的属性,是 y 值。现在代码中的 y 值为 44,把 y 值改成 0,再保存一下,空白就没有了。

现在代码中的 y 值为 44,把 y 值改成 0,再保存一下,空白就没有了。

模块基本的样貌已经具备了,我们再了解一下其他的功能,界面上的所有都是可以改的,下面的好友栏、回帖栏、主题栏,他们各自可以设置各自的背景图片,还有字体大小,字体颜色,字体内容等等。数值现在是固定写死的,如果我们后面学习了后端知识,也可以做到数据的交互。头像图片下面的文字也可以更改内容、大小与颜色。

体验完了界面布局,接下来我们看一下左上角的修改按钮或右上角的设置按钮,我们点击左上角的修改按钮,会弹出您没有修改权限。点击右上角的设置按钮,会弹出您没有设置权限。我们看一下修改按钮部分的代码,为什么会弹出这个提示。

这段代码的意思是当我们点击按钮后的返回值如果是 btnArray 这个数组的长度 +1,那么就提示您没有修改权限。如果点击按钮后的返回值如果是 btnArray 这个数组的长度 +2,那么就提示您没有设置权限。

我们在前面找一下 btnArray 这个数组,数组的长度是 3,所以当返回值是 4 的时候,就会执行第一个 if 语句中的代码了,当返回值是 5 的时候,就会执行第二个个 if 语句中的代码。

然后我们在回调函数 function 大括号里的第一行加一句代码,把 ret 对象转换为 JSON 字符串,就可以看出来按钮和代码的对应关系了。这里涉及到一点 JSON 的知识,如果不太懂的话,大家之后可以去了解一下。

再保存一下,我们点击修改,这时弹出的是 click4,,我们可以看出来点击修改按钮确实会执行第一个 if 语句中的代码,因为判断条件是 ret 对象的值是 4。同样的,点击设置会弹出 click5 的提示。

看到这里我们就明白了,如果我们想要继续做一个修改或者设置的页面,只需要在此 if 语句里再调用一个列表页面的模块就好了,把它当做我们的修改页面。两个模块组合起来用,不需要自己写代码,只需要改一改现成的模块代码就好了,怎么样,非常方便吧,大家之后可以去试一试呀。这里我给大家推荐 UIListView 模块,是一个列表模块,拥有左滑的交互功能,也是免费模块中很好用的一个。

文章简单的介绍了一下 PersonalCenter 模块的 open 函数,大家也可以体验一下模块中的其他函数,熟练之后就可以多添加几个实用的模块,进行模块之间的组合和交互了。另外我们也可以从模块的代码中学习一些开发的知识点和交互逻辑,如果直接拿成品 APP 模板的源码来学习比较吃力的话,不如先从一个简单的模块入手,对我们的学习也是非常有帮助的。今天的介绍就到此结束了,希望大家学习进步,早日成为开发高手。

YonBuilder移动端低代码开发平台(APICloud)是一款“云端一体”的低代码开发平台,可免费自助制作APP,也可进行专业APP定制开发。使用APICloud开发平台,是用Web语言去开发iOS和Android应用,这样将开发难度大幅降低,开发周期缩短将近一倍。此外,APICloud平台上有上千个各式各样的功能模块,一键调用方便去开发各类App。

目录
相关文章
|
22天前
|
编解码 Java Android开发
FFmpeg开发笔记(三十一)使用RTMP Streamer开启APP直播推流
RTMP Streamer是一款开源的安卓直播推流框架,支持RTMP、RTSP和SRT协议,适用于各种直播场景。它支持H264、H265、AV1视频编码和AAC、G711、OPUS音频编码。本文档介绍了如何使用Java版的RTMP Streamer,建议使用小海豚版本的Android Studio (Dolphin)。加载项目时,可添加国内仓库加速依赖下载。RTMP Streamer包含五个模块:app、encoder、rtmp、rtplibrary和rtsp。完成加载后,可以在手机上安装并运行APP,提供多种直播方式。开发者可以从《FFmpeg开发实战:从零基础到短视频上线》获取更多信息。
53 7
FFmpeg开发笔记(三十一)使用RTMP Streamer开启APP直播推流
|
19天前
|
数据可视化 数据处理 Swift
Swift开发——简单App设计
SwiftUI教程概述:简化App设计,通过代码展示了如何创建一个计算两个数之和的界面。工程`MyCh0902`包含`ContentView.swift`,其中定义了`ContentView`和`MyView`结构体。`MyView`负责界面布局,使用`VStack`和`HStack`组织元素,如`TextField`和`Button`。点击`Button`调用`calc`方法处理输入并更新结果。界面设计可在Xcode的Inspector窗口中可视化配置。推荐将界面逻辑移到单独的`MyView.swift`文件中以清晰分离视图设计。
187 1
Swift开发——简单App设计
|
2天前
|
存储 移动开发 Android开发
使用kotlin Jetpack Compose框架开发安卓app, webview中h5如何访问手机存储上传文件
在Kotlin和Jetpack Compose中,集成WebView以支持HTML5页面访问手机存储及上传音频文件涉及关键步骤:1) 添加`READ_EXTERNAL_STORAGE`和`WRITE_EXTERNAL_STORAGE`权限,考虑Android 11的分区存储;2) 配置WebView允许JavaScript和文件访问,启用`javaScriptEnabled`、`allowFileAccess`等设置;3) HTML5页面使用`<input type="file">`让用户选择文件,利用File API;
|
6天前
|
运维 Android开发 开发者
你知道APP是怎么开发的吗?
【7月更文挑战第9天】你知道APP是怎么开发的吗?
|
1天前
|
Android开发 Kotlin
kotlin开发安卓app,如何让布局自适应系统传统导航和全面屏导航
使用`navigationBarsPadding()`修饰符实现界面自适应,自动处理底部导航栏的内边距,再加上`.padding(bottom = 10.dp)`设定内容与屏幕底部的距离,以完成全面的布局适配。示例代码采用Kotlin。
30 15
|
1天前
|
存储 API Android开发
kotlin开发安卓app,使用webivew 触发 onShowFileChooser, 但只能触发一次,第二次无法触发,是怎么回事。 如何解决
在Android WebView开发中,`onShowFileChooser`方法用于开启文件选择。当用户只能选择一次文件可能是因为未正确处理选择回调。解决此问题需确保:1) 实现`WebChromeClient`并覆写`onShowFileChooser`;2) 用户选择文件后调用`ValueCallback.onReceiveValue`传递URI;3) 传递结果后将`ValueCallback`设为`null`以允许再次选择。下面是一个Kotlin示例,展示如何处理文件选择和结果回调。别忘了在Android 6.0+动态请求存储权限,以及在Android 10+处理分区存储。
|
25天前
|
开发框架 移动开发 JavaScript
SpringCloud微服务实战——搭建企业级开发框架(四十七):【移动开发】整合uni-app搭建移动端快速开发框架-添加Axios并实现登录功能
在uni-app中,使用axios实现网络请求和登录功能涉及以下几个关键步骤: 1. **安装axios和axios-auth-refresh**: 在项目的`package.json`中添加axios和axios-auth-refresh依赖,可以通过HBuilderX的终端窗口运行`yarn add axios axios-auth-refresh`命令来安装。 2. **配置自定义常量**: 创建`project.config.js`文件,配置全局常量,如API基础URL、TenantId、APP_CLIENT_ID和APP_CLIENT_SECRET等。
161 60
|
28天前
|
安全 JavaScript 前端开发
kotlin开发安卓app,JetPack Compose框架,给webview新增一个按钮,点击刷新网页
在Kotlin中开发Android应用,使用Jetpack Compose框架时,可以通过添加一个按钮到TopAppBar来实现WebView页面的刷新功能。按钮位于右上角,点击后调用`webViewState?.reload()`来刷新网页内容。以下是代码摘要:
|
11天前
|
JSON 小程序 数据格式
uni-app 使用vscode开发uni-app
uni-app 使用vscode开发uni-app
41 0
|
12天前
|
JSON 前端开发 API
移动端---------app开发03----apicloud必须掌握的代码
移动端---------app开发03----apicloud必须掌握的代码