分享好友 最新动态首页 最新动态分类 切换频道
2023年夏季《移动软件开发》实验报告之实验5:高校新闻网
2024-12-27 04:58

1、综合所学知识创建完整的前端新闻小程序项目;能够在开发过程中熟练掌握真机预览、调试等操作。

列出实验的关键步骤、代码解析、截图。

1.需求分析

本项目一共需要3个页面,即首页、新闻页和个人中心页,其中首页和个人中心页需要以tabBar的形式展示,可以点击tab图标互相切换。

首页功能需求如下

(1)首页需要包含幻灯片播放效果和新闻列表

(2)幻灯片至少要有3幅图片自动播放

(3)点击新闻列表可以打开新闻全文。

新闻页功能需求如下

(1)阅读新闻全文的页面需要显示新闻标题、图片、正文和日期

(2)允许 点击按钮将当前阅读的新闻添加到本地收藏夹中

(3)已经收藏过的新闻也可以点击按钮取消收藏。

个人中心页功能需求如下

(1)未登录状态下显示登录按钮,用户点击以后可以显示微信头像和昵称。

(2)登录后读取当前用户的收藏夹,展示收藏的新闻列表。

(3)收藏夹中的新闻可以直接点击查看内容。

(4)未登录状态下收藏夹显示为空。

2.页面配置与添加素材

在app.json中的pages属性下添加pages/detail/detail和pages/my/my,保存后生成detail页面和my页面

 

删除 index.wxml和index.wxss全部代码

删除index.js中全部代码,输入关键词page,找到Page选项回车自动补全函数

删除app.wxss中全部代码

删除app.js中全部代码,输入关键词app,找到App选项回车自动补全函数

在根目录下创建images和util文件夹,分别用于存储图片素材和JS文件

3.视图设计

3.1导航栏设计

在app.json中修改window属性配置导航栏效果

 

3.2 tabBar设计

首先在app.json中追加tabBar的相关属性代码,属性解释见注释

 

3.3个人中心页设计

修改my.wxml文件

 

为登陆面板和我的收藏区域添加内容

 

修改my.wxss文件

 

3.4新闻页设计

修改detail.wxml代码

 

修改detail.wxss代码

 

4.逻辑实现

在各个页面的js文件顶端引用js文件,作用为使用common.js文件

 

4.1主页逻辑

(1)新闻列表获取

新闻存储在newList变量中,因此在加载首页时(即启动onLoad函数)获取新闻,并赋值给newList

 

(2)点击新闻跳转详情

在index.wxml的新闻列表项目的** 组件添加点击事件, data-id**属性携带新闻ID编号用于查询对应新闻

 

index.js中定义goToDetail点击事件函数

 

此时点击首页的新闻标题,那么就可以跳转到detail界面,由于detail界面尚未设置接受函数,因此跳转到的页面内容仍为临时数据内容

4.2新闻页逻辑

(1)在首页逻辑中我们在跳转到detail界面时传递了新闻id,现在在新闻页接受id,并查询对应的新闻内容

在detail.js文件中进行修改

 

保存后,再点击首页新闻标题即可进入对应新闻内容

(2)添加/取消新闻收藏

修改detail.wxml代码,追加两个组件作为添加/取消新闻收藏按钮,且通过wx:if和wx:else属性使其每次只存在一个

 

对应wxss样式

 

先修改onload函数,利用wx.getStorageSync(id)返回值判断是否已经收藏当前新闻,收藏isAdd = true 否则为 false

然后在detail.js中添加addFavorites和cancleFavorites事件函数

收藏功能使用到微信小程序API wx.setStorageSync(),能够非常简单实现添加收藏,获取收藏内容等功能

 

点击第一条新闻,跳转页面后显示未收藏,点击“点击收藏”,按钮显示为“已收藏”

回到主界面,再进入第一条新闻,显示已收藏

4.3个人主页逻辑

(1)获取微信用户信息

修改my.wxml代码,追加组件作为登录按钮,并使用wx:if和wx:else属性让未登录时只显示按钮,登陆后只显示头像和昵称

 

在my.js中编写getUserInfo函数,获取用户信息,并将信息更新到动态数据上

 

(2)获取收藏列表

修改my.wxml代码,将“我的收藏(1)”的“1”改为动态数据效果

修改my.wxml文件

 

在my.js中的data中初始化num为0

继续在my.js中追加getMyFavorites函数,用于展示真正的新闻收藏列表。

 

然后在getUserInfo()中调用该函数

 

初始化my.js中data的newsList为空,即删除临时新闻列表数据

这样收藏的功能实际上是将收藏信息保存到本地缓存,用户登录后读取缓存信息,将新闻放到“我的收藏”,并不算真正意义上的收藏,要想事项真正意义的收藏,则应该将用户信息和其收藏信息一并保存,如一并保存到云数据库,在读取用户信息后,到云数据库查询用户信息,进而读取用户收藏。

考虑到登陆成功后用户还可以手动更改新闻的收藏状态,因此修改my.js中的onShow函数(生命周期函数–监听页面显示,判断如果是登陆状态就刷新一下收藏列表。

 

(3)浏览收藏的新闻

点击收藏的新闻和在首页点击新闻跳转功能相似

修改my.wxml,在显示新闻标题的title的组件 添加点击函数goToDetail,并传递新闻id

 

在my.js中编写gotoDetail函数实现页面跳转,与首页新闻跳转一致


最新文章
经典erp系统界面在哪打开的 经典erp系统界面在哪打开?全面解析入口
经典系统界面在哪打开?全面解析入口经典ERP系统界面可以通过以下几种方式打开:1、直接通过ERP系统提供的客户端进行访问;2、使用ERP系统的Web端口进入;3、通过企业内部的门户网站进行访问。下面将详细介绍每种方式的具体操作步骤和注意
店铺宣传推广的 今年Zui新攻略
店铺宣传推广的今年Zui新攻略在当今竞争激烈的电商行业中,如何通过有效的推广策略脱颖而出,成为每个店铺都关心的问题。竞价开户和电商平台开户成为了提升店铺曝光度和销售额的关键环节。在本文中,我们将为您详细介绍竞价开户的流程和注
金华进口樱桃汁国外工厂备案代理Good Service
金华进口樱桃汁国外工厂备案代理——众多客户见证——选择卓鹰进口清关,就是靠谱!卓鹰百科知识分享:樱桃(学名:Cerasus pseudocerasus),是某些李属类植物的统称,包括樱桃亚属、酸樱桃亚属、桂樱亚属等。乔木,高2-6米,树皮灰白色。
山东省济南较好的职业学校-报名电话
春蚕一生没说过自诩的话,那吐出的银丝就是丈量生命价值的尺子。敬爱的老师,您从未在别人面前炫耀过,但那盛开的桃李,就是对您最高的评价。仅供参考,如果觉得很不错,欢迎大家咨询!济南应用技术职业中等专业学校开设有针对性强、适应市
用AI轻松生成高清美女写真,这款工具你一定要试试!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 在这个数字时代,AI技术不断进步,各种与我们生活息息相关的领域都在发生着翻天覆地的变化。
漫蛙漫画在线登录入口,免费进入海量漫画世界,畅享精彩漫画体验
漫蛙漫画作为一个备受欢迎的漫画平台,凭借其丰富的漫画资源和便捷的阅读体验吸引了大量漫画爱好者的关注。通过漫蛙漫画的在线登录入口,用户可以轻松访问平台,免费阅读海量漫画,享受极致的视觉体验。无论你是喜爱国产漫画,还是钟情于日
众多Android 开源项目推荐,给力工作给力学习
Robotium是一个测试框架能够方便你为Android应用程序编写强大、健壮的自动黑盒测试用例。利用Robotium的支持,用例开发人员能够编写功能、系统和验收测试方案Robotium支持Activities、Dialogs、Toasts、Menus和Context Menus。项目地
英雄联盟射程最远的英雄是谁?
1、平a射程最远的皮城女警,射程高达650码;2、18级射程最远的麦林炮手,天赋加上18级射程可达703码;3、技能加成后射程最远的深渊巨口500的基本射程加上W技能可达710,说明特例首领之傲射程只有425,不过E技能打到人再用q技能可达1200码。
电池续航:长时间使用无需频繁充电
在智能手机市场中,OPPO的Y系列一直以来都是中低端市场的重要选择。OPPO Y31s作为Y系列的一员,凭借其较为亲民的价格和出色的功能配置,吸引了不少消费者的关注。本文将全面解析OPPO Y31s的性能特点,帮助大家了解这款手机的实际表现以及它
搜狗搜刮引擎网排名优化器_搜狗搜刮引擎网络排名优化器(搜狗搜索引擎网排名优化器)
末了,在各人开展下拉优化之前小马识途顾问夸大几点起首,下拉优化不但仅有百度,尚有360搜狗神马本日头条等主流搜刮平台,只要是搜刮引擎都可以做下拉优化其次下拉优化不是独立存在的,必要有肯定网络推广底子,就是遐想出来词经搜刮后有
相关文章
推荐文章
发表评论
0评