笔者由于工作需要,曾经参加过一个微信小程序同 SAP 系统集成的项目,因此从零开始学习了微信小程序的开发知识。这里通过系列文章把自己所学分享出来,希望对相关学习者有所帮助。
本教程前面三篇文章:
通过本系列前面三篇文章的介绍,大家对微信小程序的视图和控制器,微信调试器的用法,以及如何消费微信平台提供的 Public API,已经有了一个最基本的认识了。在这个基础上,本文让我们进一步学习微信小程序的页面跳转路由设计。
这个系列教程的前六篇文章我们都在单个的视图上 *** 作。现在让我们创建第二个视图,然后实现从第一个视图到第二个视图的跳转。
首先开发第二个视图:
做过 Angular 开发的朋友们对上面的视图设计一定不会陌生。这个视图的数据源由模型 logs 提供,是一个列表结果,列表每个元素的数据源是模型 logs 里的一条记录,用 log 代表。
为了让 log 看起来显示更整齐,在 log 内容之前,显示每条 log 的索引。因为 log 的索引从 0 开始,所以用 {{index + 1}} 在索引前加一,这样显示的索引更符合普通人的阅读习惯。
这个视图的控制器:
控制器 logsjs 的实现:
在控制器里调用 Page 构造函数,给当前控制器指定名为 logs 的数据模型。
这个数据模型的值填充,通过微信框架提供的 API wxgetStorageSync 来获取。
wxgetStorageSync 的含义在微信小程序 官网 上有定义:从本地缓存中同步获取指定 key 对应的内容。
第二个视图的 UI 和控制器都开发完毕,剩下的事情就是在第一个视图里定义一个触发点,让它能触发到第二个视图的跳转。
我在第一个视图上通过属性 bindtap 绑定了一个点击函数 bindViewTap :
bindViewTap 在第一个控制器 indexjs 里的实现:
跳转还是通过微信小程序提供的 API wxnavigateTo :
保留当前页面,跳转到应用内的某个页面,使用 wxnavigateBack 可以返回到原页面。
学习了微信小程序页面路由跳转之后,我们来进行一个实际的需求开发。
效果:我在手机上打开微信小程序,自动显示出我当前所在的地理位置:
具体步骤:
ReservationServicegetGeocode 的实现:
看下面一个使用高德地图 API 将经纬度转换成文字描述的地址的例子,使用 postman 发送请求:
API 响应:
假设我用 vue 开发了一个 web 应用,需要在手机微信里访问并调试, 可以按照本文介绍的步骤,使用微信开发者工具来调试。
假设我的 web 应用的访问入口是如下公众号菜单的"预约"按钮:
那么为了能够在微信开发者工具里调试,需要首先进入该公众号的后台,在 web 开发者工具里,将开发者本人的微信号添加进去:
点击"绑定开发者账号":
输入待绑定的微信账号:
点击绑定,该微信号会收到一条消息,询问是否绑定:
点击同意 *** 作完成绑定。
接下来, 把要调试的 web 应用的 url 放到微信开发者工具地址栏里,回车之后,微信开发者工具就会d出一个询问窗口,点击 Allow 之后,就可以在微信开发者工具提供的类似 Chrome 开发者工具调试器一样的界面里进行单步调试了。
这个粘贴到地址栏的 url 很有讲究。
>
如果这个办法行不通,也可以在小程序获得后台返回的json数据后,先把其中的路径数据(即用:分隔的多个路径的字符串)用split分割为数组,再放入page的data中,这样小程序的wxml文件也不需要大改就能显示多个了。
如果实在懒得很,后台返回的数据一股脑的直接放到page的data中,那么还有最后的一种解决办法,就是在wxml文件中通过小程序自身的wxs语言实时分割路径字符串,比如(假定字段名为image):
<wxs module="fun">moduleexports = {
imgPathSplit: function(s) {
if (s) return ssplit(":");
}
}
</wxs>
然后在需要循环显示的地方加入代码(只是示例):
<image wx:for="{{funimgPathSplit(itemimage)}}" wx:key="this" mode="aspectFill" src="{{item}}"></image>这样,在小程序渲染页面时就会实时对路径字符串进行分割,再循环显示出来。
具体情况,由于你提供的信息有限,也无法说的更多了,你自己去研究。
一、小程序架构
每个小程序的结构都有两个主要部分构成:主体部分+各个页面。类似于许多框架,主体部分主要用于核心的配置,各个页面主要用于不同业务场景。
11、主体部分主要由3个文件构成
1)appjs:小程序逻辑,初始化APP
2)appjson:小程序配置,比如导航、窗口、页面>
方法:获取page数据,看代码:var text=thisdataname ,这样就获取到初始化的值
page({
data:{name:"test"},
showData:function(){
var text=thisdataname
}
})
示例如下:
utiljs
//正则判断
function Regular(str, reg) {
if (regtest(str))
return true;
return false;
}
//是否为中文
function IsChinese(str) {
var reg = /^[\u0391-\uFFE5]+$/;
return Regular(str, reg);
}
moduleexports = {
getRequestUrl: ">
IsChinese: IsChinese,
}
//testjs
var util = require('//utils/utiljs');
Page({
onLoad: function () {
consolelog("判断是否为中文:"+utilIsChinese('测试'));
consolelog("输出接口url:"+utilgetRequestUrl);
}
})
1、在微信开发者工具中,打开appjson文件,在pages数组中增加showwxml页面相关文件的代码,以加粗显示,代码如下:
{
"pages":[
"pages/index/index",
"pages/show/show",
"pages/logs/logs"
],
"window":{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#ccc",
"navigationBarTitleText": "WeChat",
"navigationBarTextStyle":"black"
}
}
2、在indexwxml文件中,在类为usermotto的view组件中添加绑定属性catchtap='enterShow',以加粗显示,代码如下:
<!--indexwxml-->
<view class="container">
<view class="userinfo">
<button wx:if="{{!hasUserInfo && canIUse}}" open-type="getUserInfo" bindgetuserinfo="getUserInfo"> 获取头像昵称 </button>
<block wx:else>
<image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfoavatarUrl}}" background-size="cover"></image>
<text class="userinfo-nickname">{{userInfonickName}}</text>
</block>
</view>
<view class="usermotto" catchtap='enterShow'>
<text class="user-motto">{{motto}}</text>
</view>
</view>
3、在indexjs文件中,将data中motto的值改为“点击进入”。编写实现跳转的自定义函数enterShow,加粗显示,代码如下:
//indexjs
//获取应用实例
const app = getApp()
Page({
data: {
motto: '点击进入',
userInfo: {},
hasUserInfo: false,
canIUse: wxcanIUse('buttonopen-typegetUserInfo')
},
//事件处理函数
enterShow:function(){
wxnavigateTo({
url: '/show/show',
})
4、 在showwxml中,输入跳转后页面显示的信息,代码如下:
<view>
<text>这是跳转后的页面</text>
</view>
5、然后在indexxwml中点击测试就可以了。
说明:在上面的页面跳转自定义函数enterShow中,也可以使用wxredirectTo实现跳转。两者的区别:redirectTo将关闭当前页面,跳转到指定页面,页面左上角没有返回的箭头按钮;而navigateTo将保留页面,跳转到指定页面,页面左上角有返回的箭头按钮。
扩展资料其实在小程序后台很早就有个wxopenUrl的函数,普通开发者没有调用权限,这次微信给自家的小程序开放权限,旨在测试这一功能可能的风险。因为这一功能如果全部开放,将会给小程序用户带来很大的安全隐患。居心不良的开发者可能会将用户引流至一些不安全页面。
小程序的审核难度也会变得很大。因为微信除了审核小程序本身的页面跳转和内容,还需要审核外链的链接,并且还不一定能够审核清楚。
以上就是关于微信小程序开发系列 (四) :微信小程序的页面跳转路由设计全部的内容,包括:微信小程序开发系列 (四) :微信小程序的页面跳转路由设计、微信小程序 列表输出问题、微信小程序架构篇等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)