关于【积分获取】的说明关于【附件下载】的说明
查看: 456|回复: 7

【微信小程序开发教程】菜单内容左右联动 & MD5加密

[复制链接]

49

主题

60

帖子

1万

积分

论坛元老

Rank: 8Rank: 8

积分
10785
发表于 2017-8-25 14:16:23 | 显示全部楼层 |阅读模式

登录后查看更多内容,推荐微信扫码快速登录

您需要 登录 才可以下载或查看,没有帐号?【建议使用下方微信快捷登录注册】

x
1、微信小程序菜单内容左右联动
小程序无法获取元素的宽高,位置信息,只能通过后台计算,但是存在较大的机器误差,不知有啥好的解决方案?

如图所以,左侧是菜单栏,右侧是主体内容,点击左侧菜单,右侧滑动到相应的位置;右侧滑动过程,也会改变左侧菜单的选中状态。本人的实现方案:
所有元素大小单位用rpx;
通过scrollbind(e) 的 e.detail.scrollHeight获取右侧滑动区域的总高度(单位px)
通过物品高度和标题高度的比值,计算出各自的实际高度(单位px)
通过修改scrollTop(单位px)改变主体内容位置

这样还是存在1px-100px的误差,物品越多,后面的累计误差会越大,有没有更好的解决办法呢?
答:测试了一下,的确用scroll-view的scroll-to-view特性可以解决:
wxml中修改:

js文件中修改:
page data中增加:
menuType:['food','dust','bowl','cages','toys','tools'],toView:'cages',

然后把下面函数修改一下:
selectMenuAct: function (e) {
//typenamevar id = e.target.dataset.id;var tType=this.data.menuType[id];
console.log(e),this.setData({
  scrollNum: id,
  toView: tType
  //scrollTop: this.data.heightList[id]
});
},
测试环境下通过。
scroll-into-view值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素。

2、微信小程序MD5加密
一般很多语言都有MD5加密的库。
如果你指的是数据加密,怕数据明文不安全,我建议使用base64 + 一些前缀或者后缀进行加密,然后将数据传到服务器,服务器再进行解密后去掉这些前后缀。比如,明文是abc,你可以加一下前缀,变成123abc,然后加密成为MTIzYWJj再发出去,然后再解密就行了。
一般MD5加密是不可逆的。而base64可以编码解码,如下:
package main
import (
    "fmt"
    "github.com/hunterhug/GoSpider/util"
)
func main() {
    s := "abc"
    prefix := "123"
    base64e := util.Base64E(prefix + s)
    fmt.Println("加密:" + base64e)
    fmt.Println("再解密:" + util.Base64D(base64e))
}

结果
加密:MTIzYWJj
再解密:123abc

百度百科介绍:Base64编码可用于在HTTP环境下传递较长的标识信息。例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数。在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式。此时,采用Base64编码不仅比较简短,同时也具有不可读性,即所编码的数据不会被人用肉眼所直接看到。
我的Golang语言自己封装的加密库一般是这样的:
/*
Copyright 2017 by GoSpider author.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
    http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package util
import (
    "crypto/hmac"
    "crypto/md5"
    "crypto/sha256"
    "encoding/base64"
    "encoding/hex"
    "fmt"
    "net/url"
    "strings"
)
// HMAC with the SHA256  http://blog.csdn.net/js_sky/article/details/49024959func ComputeHmac256(message string, secret string) string {
    key := []byte(secret)
    h := hmac.New(sha256.New, key)
    h.Write([]byte(message))
    return base64.StdEncoding.EncodeToString(h.Sum(nil))
}
// create md5 stringfunc Strtomd5(s string) string {
    h := md5.New()
    h.Write([]byte(s))
    rs := hex.EncodeToString(h.Sum(nil))
    return rs
}
func Md5(str string) string {
    return Strtomd5(str)
}
// 字符串base64加密func Base64E(urlstring string) string {
    str := []byte(urlstring)
    data := base64.StdEncoding.EncodeToString(str)
    return data
}
// 字符串base64解密func Base64D(urlxxstring string) string {
    data, err := base64.StdEncoding.DecodeString(urlxxstring)
    if err != nil {
        return ""
    }
    s := fmt.Sprintf("%q", data)
    s = strings.Replace(s, "\"", "", -1)
    return s
}
//url转义func UrlE(s string) string {
    return url.QueryEscape(s)
}
//url解义func UrlD(s string) string {
    s, e := url.QueryUnescape(s)
    if e != nil {
        return e.Error()
    } else {
        return s
    }
}

现在大部分站点都开启https来保证数据安全。
回复

使用道具 举报

0

主题

93

帖子

97

积分

注册会员

Rank: 2

积分
97
发表于 2018-3-31 11:45:03 | 显示全部楼层

好 学习学习
回复

使用道具 举报

0

主题

125

帖子

132

积分

注册会员

Rank: 2

积分
132
发表于 2018-4-1 15:26:57 | 显示全部楼层
这个代码实用
回复

使用道具 举报

0

主题

125

帖子

132

积分

注册会员

Rank: 2

积分
132
发表于 2018-4-1 15:27:04 | 显示全部楼层
这个代码实用
回复

使用道具 举报

0

主题

125

帖子

132

积分

注册会员

Rank: 2

积分
132
发表于 2018-4-1 15:27:11 | 显示全部楼层
这个代码实用
回复

使用道具 举报

0

主题

25

帖子

26

积分

新手上路

Rank: 1

积分
26
发表于 2018-4-5 14:25:24 | 显示全部楼层
xuexile````
回复

使用道具 举报

0

主题

72

帖子

83

积分

注册会员

Rank: 2

积分
83
发表于 2018-4-5 18:58:54 | 显示全部楼层
支持支持顶顶顶
回复

使用道具 举报

0

主题

40

帖子

40

积分

新手上路

Rank: 1

积分
40
发表于 2018-12-18 15:54:08 | 显示全部楼层
真的很牛皮,我喜欢,要滚去学习啦!
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|Archiver|手机版|小黑屋|小程序大全|小程序开发者论坛-汇集最优质源码、开发者教程、小程序资源

GMT+8, 2019-1-22 15:41 , Processed in 0.142347 second(s), 10 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表