浅谈支付宝小程序与微信小程序开发的区别

举报
青年码农 发表于 2022/08/25 00:00:12 2022/08/25
【摘要】 1 app.json (1)设置小程序通用的的状态栏、导航条、标题、窗口背景色 支付宝小程序  "window": {     "defaultTitle": "病案到家",   //页面标题     "titleBarColor": "...

862119303b0f47a8670dbe9655e91c69.gif

7acfcfe6edea453de6c3052e6a06900e.png

515ad310fcb620cb48e745a28db6ad6e.png

1

app.json

(1)设置小程序通用的的状态栏、导航条、标题、窗口背景色

支付宝小程序

 "window": {

    "defaultTitle": "病案到家",   //页面标题

    "titleBarColor": "#1688FB"    //导航栏背景色

  },

微信小程序

 "window": {

    "backgroundTextStyle": "light",//窗口的背景色

    "navigationBarBackgroundColor": "#1688FB",//导航栏背景颜色

    "navigationBarTitleText": "病案到家",//导航栏标题文字内容

    "navigationBarTextStyle": "white"//导航栏标题颜色,仅支持 black/white

  },

(2)设置tabBar

支付宝小程序

"tabBar": {

    "textColor": "#333333",//默认颜色

    "selectedColor": "#1688FB",//选中颜色

    "backgroundColor": "#ffffff",//背景色

    "items": [

      {

        "icon": "/images/indexGrey.png",

        "activeIcon": "/images/indexWhite.png",

        "pagePath": "pages/homeIndex/homeIndex",

        "name": "首页"

      },

      {

        "icon": "/images/personGrey.png",

        "activeIcon": "/images/personWhite.png",

        "pagePath": "pages/orderList/orderList",

        "name": "我的"

      }

    ]

  }

微信小程序

"tabBar": {

    "color": "#333333",

    "selectedColor": "#1688FB",

    "backgroundColor": "#ffffff",

    "borderStyle": "#e5e5e5",

    "list": [

      {

        "iconPath": "/images/indexGrey.png",

        "selectedIconPath": "/images/indexWhite.png",

        "pagePath": "pages/homeIndex/homeIndex",

        "text": "首页"

      },

      {

        "iconPath": "/images/personGrey.png",

        "selectedIconPath": "/images/personWhite.png",

        "pagePath": "pages/orderList/orderList",

        "text": "我的"

      }

    ]

  }

2

pages

(1)文件命名不同

支付宝小程序

b62a2099d951da4b916bd194451dfa36.png

微信小程序

41144f88f118b4e38c4c6fa6bbee1c3c.png

我分别在微信小程序和支付宝小程序建立了页面,区别在于:

支付宝小程序里面的视图层页面文件后缀是“axml”,样式文件后缀是“acss”;

微信小程序里面的视图层页面文件后缀是“wxml”,样式文件后缀是“wxss”。

(2)视图层页面axml以及wxml

1.冒泡事件和非冒泡事件

支付宝小程序

onTap, catchTap

on 事件绑定不会阻止冒泡事件向上冒泡,catch 事件绑定可以阻止冒泡事件向上冒泡。

<button class="weui-btn" onTap="login" type="primary">登录</button>

微信小程序

bindtap、catchtouchstart

bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止冒泡事件向上冒泡。

<button class="weui-btn" bindtap='login' type="primary">登录</button>

2.列表渲染

Page({

  data: {

    list: [{

      Title: '支付宝',

    }, {

      Title: '微信',

    }]

  }

})

支付宝小程序

<block a:for="{{list}}">

  <view key="item-{{index}}" index="{{index}}">{{item.Title}}</view>

</block>

微信小程序

<block wx:for="{{list}}">

  <view wx:key="this" wx:for-item="item">{{item.Title}}</view>

</block>

3.条件渲染

支付宝小程序

<view a:if="{{length > 5}}"> 1 </view>

<view a:elif="{{length > 2}}"> 2 </view>

<view a:else> 3 </view>

微信小程序

<view wx:if="{{length > 5}}"> 1 </view>

<view wx:elif="{{length > 2}}"> 2 </view>

<view wx:else> 3 </view>

1

开发过程中常用到的两个小程序中组件的不同用法

(1)交互

1.消息提示框

支付宝小程序

my.showToast({

  type: 'success',//默认 none,支持 success / fail / exception / none’。

  content: '操作成功',//文字内容

  duration: 3000,//显示时长,单位为 ms,默认 2000

  success: () => {

    my.alert({

      title: 'toast 消失了',

    });

  },

});

my.hideToast()//隐藏弱提示。

微信小程序

wx.showToast({

  title: '成功',//提示的内容

  icon: 'success',//success 显示成功图标;loading 显示加载图标;none不显示图标

  duration: 2000

})

//icon为“success”“loading”时 title 文本最多显示 7 个汉字长度

wx.hideToast() //隐藏

2.消息提示框

支付宝小程序

my.showLoading({

  content: '加载中...',

  delay: 1000,

});

my.hideLoading();

微信小程序

wx.showLoading({

  title: '加载中',

})

wx.hideLoading()

3.http 请求

支付宝小程序

my.httpRequest({

  url: 'http://httpbin.org/post',

  method: 'POST',

  data: {

    from: '支付宝',

    production: 'AlipayJSAPI',

  },

  headers:"",//默认 {'Content-Type': 'application/x-www-form-urlencoded'}

  dataType: 'json',

  success: function(res) {

    my.alert({content: 'success'});

  },

  fail: function(res) {

    my.alert({content: 'fail'});

  },

  complete: function(res) {

    my.hideLoading();

    my.alert({content: 'complete'});

  }

});

微信小程序

wx.request({

  url: 'test.php', //仅为示例,并非真实的接口地址

  data: {

    x: '',

    y: ''

  },

  header: {

    'content-type': 'application/json' // 默认值

  },

  success (res) {

    console.log(res.data)

  }

})

其实微信小程序和支付宝小程序提供的api方法大致相同,只是微信小程序是以“wx.”起头,支付宝小程序是以“my.”起头,其余可能只是api方法里面字段“text、content、name、title”等命名不同。

(2)选择器

1.时间选择器

支付宝小程序

支付宝小程序提供了一个api,my.datePicker(object)

my.datePicker({

  format: 'yyyy-MM-dd',//返回的日期格式,

  currentDate: '2012-12-12',//初始选择的日期时间,默认当前时间

  startDate: '2012-12-10',//最小日期时间

  endDate: '2012-12-15',//最大日期时间

  success: (res) => {

    my.alert({

  content: res.date,

});

  },

});

微信小程序

微信小程序是通过picker组件来实现的

<view class="section">

  <view class="section__title">日期选择器</view>

  <picker mode="date" value="{{date}}" start="2015-09-01" end="2017-09-01" bindchange="bindDateChange">

    <view class="picker">

      当前选择: {{date}}

    </view>

  </picker>

</view

Page({

  data: {

    date: '2016-09-01',

  },

  bindDateChange: function(e) {

    console.log('picker发送选择改变,携带值为', e.detail.value)

    this.setData({

      date: e.detail.value

    })

  },

})

2.省市区选择器

支付宝小程序

支付宝小程序提供了一个api,my.multiLevelSelect(Object)

级联选择功能主要使用在于多级关联数据选择,比如说省市区的信息选择。

1.1、引入一个省市区的json格式文件http://blog.shzhaoqi.com/uploads/js/city_json.zip

1.2、在js中引入这个文件

1.3、使用my.multiLevelSelect(Object)

var citysJSON = require('../../utils/city.js');

Page({

  data: {

    provinces: '陕西省',

    city: '西安市',

    area: '碑林区'

  },

  chooseAddress: function () {

    my.multiLevelSelect({

      title: '选择省市区',//级联选择标题

      list: citysJSON.citys,

      success: (res) => {

        this.setData({

          provinces: res.result[0].name,

          city: res.result[1].name,

          area: res.result[2].name,

        })

      }

    });

  },

})

微信小程序

微信小程序依然是通过picker组件来实现的

<view class="section">

  <view class="section__title">省市区选择器</view>

  <picker mode="region" bindchange="bindRegionChange" value="{{region}}" custom-item="{{customItem}}">

    <view class="picker">

      当前选择:{{region[0]}},{{region[1]}},{{region[2]}}

    </view>

  </picker>

</view>

//custom-item   可为每一列的顶部添加一个自定义的项,可为空

Page({

  data: {

    region: ['广东省', '广州市', '海珠区'],

    customItem: '全部'

  },

  bindRegionChange: function (e) {

    console.log('picker发送选择改变,携带值为', e.detail.value)

    this.setData({

      region: e.detail.value

    })

  }

})

(3)小程序唤起支付

支付宝小程序

my.tradePay({

  tradeNO: '201711152100110410533667792', // 调用统一收单交易创建接口(alipay.trade.create),获得返回字段支付宝交易号trade_no

  success: (res) => {

    my.alert({

  content: JSON.stringify(res),

});

  },

  fail: (res) => {

    my.alert({

  content: JSON.stringify(res),

});

  }

});

微信小程序

wx.requestPayment({

  timeStamp: '',//时间戳,从 1970 年 1 月 1 日 00:00:00 至今的秒数,即当前的时间

  nonceStr: '',//随机字符串,长度为32个字符以下

  package: '',//统一下单接口返回的 prepay_id 参数值,提交格式如:prepay_id=***

  signType: 'MD5',//签名算法

  paySign: '',//签名

  success (res) { },

  fail (res) { }

})

(4)电话

支付宝小程序

my.makePhoneCall({

number: '400-8097-114'

})

微信小程序

wx.makePhoneCall({

  phoneNumber: '400-8097-114'

})

(5)获取登录凭证(code)

支付宝小程序

my.getAuthCode({

  success (res) {

    if (res.authCode) {

      console.log(res.authCode)

    } 

  }

})

微信小程序

wx.login({

  success (res) {

    if (res.code) {

      console.log(res.code)

    } 

  }

})

支付宝小程序与微信小程序有很多相似之处,不论是组件还是api都会给你熟悉的感觉!

【免责声明】本文章来源于网络、报刊、新闻等整理而成,文章所述观点并不代表本平台立场,转载是为了更好地传播资讯。我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。

bddc72e1d6a8063795ec67f9efb41c50.gif

文章来源: blog.csdn.net,作者:NMGWAP,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/NMGWAP/article/details/125066740

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。