首页 > 编程语言 >移动软件开发--第一个小程序

移动软件开发--第一个小程序

时间:2023-08-22 11:55:21浏览次数:41  
标签:index 软件开发 -- 微信 昵称 用户 获取 移动 getUserProfile

2023年夏季《移动软件开发》实验报告

一、实验目标

1、学习使用快速启动模板创建小程序的方法;2、学习不使用模板手动创建小程序的方法。

二、实验步骤

1、在微信公众平台登录微信获取AppID创建小程序

2、页面配置

​ 按要求删除项目中部分文件,并补全在index.js与app.js中的代码

3、视图设计
3.1导航栏设计

​ 更改app.json文件代码如下:

{
  "pages":[
    "pages/index/index"
  ],
  "window":{
    "navigationBarBackgroundColor": "#663399",
    "navigationBarTitleText": "手动创建第一个小程序",
    "navigationBarTextStyle": "white"
  },
  "style": "v2",
  "sitemapLocation": "sitemap.json"
}

​ 可以将导航栏背景色更改为紫色,字体为白色,效果如下图:

3.2 页面设计

​ 更改index.wxml代码如下:

<view class = 'container'>
    <image></image>
    <text>Hello World</text>
    <button>点击获取头像和昵称</button>
</view>

​ 可得到如下效果:

​ 修改wxml组件内容:

 <image src = '/images/photo.jpg' mode = 'widthFix'></image>

​ 并在wxss追加组件相关样式代码,可得到头像图片:

4、逻辑实现
4.1 获取微信用户信息

由于微信小程序调整用户头像昵称获取规则,wx.getUserInfo()函数将统一返回默认灰色头像,昵称统一返回“微信用户”,所以这里选择wx.getUserProfile()函数来获取用户信息,修改index.wxml 标签代码如下:

<button bindtap = "getUserProfile">点击获取头像和昵称</button>
	index.js中getUserProfile函数如下:
  getUserProfile(e) {
    wx.getUserProfile({
      desc: '展示用户信息', 
      success: (res) => {
        console.log(res)
      }
    })
  }
	可以在控制台看到成功获取用户信息:

4.2使用动态数据显示头像和昵称

在index.wxml中修改image组件与text组件如下:

    <image src = '{{src}}' mode = 'widthFix'></image>
    <text>{{name}}</text>

”{{}}“为动态数据,并在js文件中data属性追加两个动态数据的值,代码片段如下:

data: {
    src :'/images/photo.jpg',
    name:'Hello World'
  },
4.3更新头像和昵称

修改index.js文件中getUserProfile函数代码,使获取到的信息更新到动态数据上,代码片段如下:

 getUserProfile(e) {
    wx.getUserProfile({
      desc: '展示用户信息', 
      success: (res) => {
        console.log(res)
        let info = res.userInfo;
        this.setData({
           src:info.avatarUrl,  //更新图片来源
           name: info.nickName   //更新昵称
        })
      }
    })
  }

三、程序运行结果

运行前:

运行中,需通过用户同意:

同意后即可显示头像昵称:

四、问题总结与体会

​ 刚接触HTML语言,在应用上还不太熟练,需要对着提供的代码示例来完成实验,并且在获取用户信息时一开始并没有注意到getUserInfo函数只能获取到匿名用户,并不能真正获取到用户的数据,在查阅微信开放文档后得知可以使用getUserProfile函数来获取用户信息,在更改函数后完成本次实验,课下还需要更多的时间来进行练习,才能够更好地掌握。

标签:index,软件开发,--,微信,昵称,用户,获取,移动,getUserProfile
From: https://www.cnblogs.com/-tcxm/p/17648193.html

相关文章

  • 0×03 Vulnhub 靶机渗透总结之 KIOPTRIX: LEVEL 1.2 (#3) SQL注入+sudo提权
    0×03Vulnhub靶机渗透总结之KIOPTRIX:LEVEL1.2(#3)......
  • Windows 使用vscode 下载编译opencv
    1.下载opencv源码.下载地址:https://opencv.org/releases/2.下载mingw这里的安装版本需要注意下,需要安装posix线程版本,不然opencv编译的时候会报错x86_64-12.2.0-release-posix-seh-rt_v10-rev1解压后配置环境变量就行下载地址如下:https://github.com/niXman/mingw-builds-b......
  • ElementUI图标icon乱码问题
    如题:ELementUI图标icon乱码问题原因:在build编译时编译器处理导致的解决方案方案一:将saas更换为node-saas,安装不了问题可查看这里方案二:升级saas和sass-loader方案三:将element引入的样式代码注释,然后再main.js添加一行引入样式代码注释代码:import'~element-ui/packages/t......
  • 学习 mobaxterm23.x
      这几天在玩vmware 想搭建个K8s玩,发现需要至少三个虚拟机,采用unbuntu系统,一主两从:其中初始化安装命令每一台虚拟机都去执行一次,这很麻烦。于是找找有没有可以一条命令多终端同时执行的工具,于是发现了这款mobaxtem,全终端工具,非常强大。比puttyxhsell更好用。决定学习一......
  • upgrading-from-ef-core-6-to-7
    BreakingChangesWhenUpgradingfromEFCore6to7:WhatYouNeedtoKnowMarch7,2023/0Comments/in Generaldevelopment/by ajtowfEntityFrameworkCore(EFCore)isapopularObject-RelationalMapping(ORM)frameworkusedby.NETdevelopersfordatab......
  • Container Runtime Intro
    https://www.tutorialworks.com/difference-docker-containerd-runc-crio-oci/......
  • js基础
    报表宏使用js语言开发。1.js使用1.1<script>标签js代码必须位于<script>标签中。<script>标签中,可以直接写js代码,也可以引用外部js,例如:<scriptsrc="我是外部js.js"></script><script>标签可以位于<head>标签中,也可以位于<body>标签中。1.2js函数js函数为一组js代码块......
  • eclipse 合并错分支代码还原,合并到本分支但未push到库上
    由于本地分支较多,稍不留神就合并错误,发现合并错误,但未提交push到git库上,此时想要还原。如图  那么需要还原,之前处理方式,删除本地代码,重新从版本库下载。 gitreset0e7d080 --hard......
  • 13 JavaScript关于prototype(超重点)
    13JavaScript关于prototype(超重点)prototype是js里面给类增加功能扩展的一种模式.写个面向对象来看看.functionPeople(name,age){this.name=name;this.age=age;this.run=function(){console.log(this.name+"在跑")}}p1=newPeople("......
  • js原型链基础知识
    为什么使用原型下面通过一个构造函数来理解为什么使用原型functionPerson(name,age){this.name=name;this.age=agethis.commomAttr=['eyes','leg','hair']}letperson1=newPerson();letperson2=newPerson();下面我们通过栈和堆去看一看以上的......