微信小程序学习实录7(H5嵌入小程序、获取微信收货地址、数组对象url传值、js获取url参数)

简介: 微信小程序学习实录7(H5嵌入小程序、获取微信收货地址、数组对象url传值、js获取url参数)

获取微信收货地址准备动作:在小程序管理后台,「开发」-「开发管理」-「接口设置」中自助开通该接口权限。

一、web-view加载H5

<web-view src="https://test.com/data/address.html"></web-view>


2.引入外部JS库

    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>获取微信收获地址</title>
    <!--微信小程序API-->
    <script src="//res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
    <!--layUI核心库-->
    <script type="text/javascript" src="static/layui/layui.js" charset="utf-8"></script>
    <link href="static/layui/css/layui.css" type="text/css" rel="stylesheet">


3.构建HTML表单

<button type="button" class="layui-btn layui-btn-normal layui-btn-fluid" onclick="getAddInfo();">获取微信地址</button>
<div class="layui-fluid" style="margin-top: 20px;">
    <form class="layui-form layui-form-pane" lay-filter="component-form-group">
        <div class="layui-card">
            <div class="layui-card-header" style="text-align: center;font-weight: bold;">地址信息</div>
            <div class="layui-card-body">
                <div class="layui-form-item">
                    <label for="provinceName" class="layui-form-label">省份<span class="x-red">*</span></label>
                    <div class="layui-input-block"><input type="text" id="provinceName" name="provinceName" class="layui-input"></div>
                </div>
                <div class="layui-form-item">
                    <label for="cityName" class="layui-form-label">地市<span class="x-red">*</span></label>
                    <div class="layui-input-block"><input type="text" id="cityName" name="cityName" class="layui-input"></div>
                </div>
                <div class="layui-form-item">
                    <label for="countyName" class="layui-form-label">区县 <span class="x-red">*</span></label>
                    <div class="layui-input-block"><input type="text" id="countyName" name="countyName" class="layui-input"></div>
                </div>
                <div class="layui-form-item">
                    <label for="detailInfo" class="layui-form-label">地址<span class="x-red">*</span></label>
                    <div class="layui-input-block"><input type="text" id="detailInfo" name="detailInfo" class="layui-input"></div>
                </div>
                <div class="layui-form-item">
                    <label for="userName" class="layui-form-label">姓名 <span class="x-red">*</span></label>
                    <div class="layui-input-block"><input type="text" id="userName" name="userName" class="layui-input"></div>
                </div>
                <div class="layui-form-item">
                    <label for="telNumber" class="layui-form-label">电话<span class="x-red">*</span></label>
                    <div class="layui-input-block"><input type="text" id="telNumber" name="telNumber" class="layui-input"></div>
                </div>
            </div>
        </div>
    </form>
</div>


4.判断运行宿主环境

  • wx.miniProgram.getEnv,API接口,在H5中使用,必须引入jweixin-1.6.0.js
    <!-- 判断运行宿主环境-->
    var wxApp = false;
    wx.miniProgram.getEnv(function (res) {
        if (res.miniprogram) {
            wxApp = true;
        } else {
            wxApp = false;
        }
    });


5.调用小程序地址

  • https://test.com,必须完成域名备案和业务域名验证;
  • wx.miniProgram.redirectTo,跳转到微信小程序,并传递相关参数;
    //调用小程序地址
    function getAddInfo() {
        if (wxApp) {
            wx.miniProgram.redirectTo({
                url: '/pages/wxaddr/wxaddr?posurl=https://test.com/data/address.html',//跳转回小程序页面,传参
                success: function () {
                    console.log('成功跳回小程序')
                },
                fail: function () {
                    console.log('跳转回小程序页面失败');
                },
            });
        } else {
            console.log('未在小程序宿主环境');
        }
    }


6.js获取url参数

    //获取参数;
    function getQueryVar(variable) {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        for (var i = 0; i < vars.length; i++) {
            var pair = vars[i].split("=");
            if (pair[0] == variable) {
                return pair[1];
            }
        }
        return (false);
    }

二、小程序核心代码

1.wxaddr.wxml

  • userName,是一组从微信收货地址获取到的对象,在url传递过程中,转为字符串。
<web-view src="https://test.com/data/address.html?userName={{address}}"></web-view>


2.wxaddr.js

  • address赋值
    data: {
        address: '',
    },


  • 加载调用chooseAddress API接口
onLoad: function (options) {
        console.log(options)
        var that = this;
        if (options.posurl) {
            that.chooseAddress(options);
        } else {
            wx.navigateBack();
        }
    },


3.选择微信地址

  • address: JSON.stringify(res),赋值格式转换;
//选择微信地址
    chooseAddress: function (a) {
        console.log(a)
        var that = this;
        if (wx.chooseAddress) {
            wx.chooseAddress({
                success: function (res) {
                    // console.log(res);
                    that.setData({
                        address: JSON.stringify(res),
                        //具体收货地址显示
                        flag: false,
                    })
                },
                fail: function (err) {
                    console.log(JSON.stringify(err));
                    console.info("收货地址授权失败");
                    wx.showModal({
                        title: "网络超时",
                        content: "刷新重试",
                        showCancel: !1
                    });
                    that.setData({
                        bt: ''
                    });
                }
            })
        } else {
            console.log('当前微信版本不支持调用或网络超时,请手动输入地址或重试');
            that.setData({
                bt: ''
            });
        }
    },


@漏刻有时

相关文章
|
5月前
|
存储 JSON 小程序
微信小程序入门之新建并认识小程序结构
微信小程序入门之新建并认识小程序结构
99 1
|
5月前
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
1802 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
7月前
|
小程序 前端开发
微信小程序商城,微信小程序微店 【毕业设计参考项目】
文章推荐了一个微信小程序商城项目作为毕业设计参考,该项目在Github上获得18.2k星,提供了详细的使用教程和前端页面实现,适合学习微信小程序开发和作为毕业设计项目。
微信小程序商城,微信小程序微店 【毕业设计参考项目】
|
7月前
|
小程序 开发者
第一个微信小程序的初始化过程、小程序微信开发平台的下载、如何注册一个微信小程序的账号
这篇文章介绍了微信小程序的初始化过程,包括如何注册微信小程序账号、下载微信小程序开发者平台,并指导了新建小程序的详细步骤。
第一个微信小程序的初始化过程、小程序微信开发平台的下载、如何注册一个微信小程序的账号
|
7月前
|
缓存 开发框架 JavaScript
人人都能看懂的鸿蒙 “JS 小程序” 数据绑定原理 | 解读鸿蒙源码
人人都能看懂的鸿蒙 “JS 小程序” 数据绑定原理 | 解读鸿蒙源码
|
8月前
|
小程序 安全 搜索推荐
【微信小程序开发实战项目】——如何制作一个属于自己的花店微信小程序(3)
这是一篇关于微信小程序开发的文章摘要,作者介绍了如何创建一个网上花店小程序,旨在提供便捷的购花体验。小程序包含鲜花分类功能,允许用户按品种、颜色和用途筛选,确保快速找到合适的鲜花。它还提供了配送服务,保证鲜花的新鲜度。文章展示了`cash.wxml`、`cash.wxss`和`cash.js`的部分代码,用于实现分类和商品展示,以及`qin.wxml`、`qin.wxss`和`qin.js`,涉及商品详情和购买付款流程。代码示例展示了商品列表渲染和交互逻辑,包括页面跳转、数据传递和点击事件处理。文章最后提到了购买付款界面,强调了安全和便捷的支付体验。
173 0
【微信小程序开发实战项目】——如何制作一个属于自己的花店微信小程序(3)
|
4月前
|
JavaScript 前端开发
JavaScript中的原型 保姆级文章一文搞懂
本文详细解析了JavaScript中的原型概念,从构造函数、原型对象、`__proto__`属性、`constructor`属性到原型链,层层递进地解释了JavaScript如何通过原型实现继承机制。适合初学者深入理解JS面向对象编程的核心原理。
55 1
JavaScript中的原型 保姆级文章一文搞懂
|
8月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
143 2
|
4月前
JS+CSS3文章内容背景黑白切换源码
JS+CSS3文章内容背景黑白切换源码是一款基于JS+CSS3制作的简单网页文章文字内容背景颜色黑白切换效果。
37 0
|
8月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
206 5

热门文章

最新文章