微信小程序学习实录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: ''
            });
        }
    },


@漏刻有时

相关文章
|
小程序 前端开发 Android开发
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
2839 29
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
|
缓存 小程序 前端开发
商城/点餐/家政类小程序源码合集_微信抖音小程序源码开发从入门到精通实战
本文系统讲解如何利用现有源码快速开发商城、点餐、家政类微信/抖音小程序,涵盖环境搭建、核心功能实现、多平台部署与优化,提供完整技术方案。实战导向,助力开发者高效入门与落地。
|
存储 小程序 Java
热门小程序源码合集:微信抖音小程序源码支持PHP/Java/uni-app完整项目实践指南
小程序已成为企业获客与开发者创业的重要载体。本文详解PHP、Java、uni-app三大技术栈在电商、工具、服务类小程序中的源码应用,提供从开发到部署的全流程指南,并分享选型避坑与商业化落地策略,助力开发者高效构建稳定可扩展项目。
|
JSON 监控 小程序
微信百度字节小程序包过大解决方案(实战经验总结)-优雅草卓伊凡|果果|小无
微信百度字节小程序包过大解决方案(实战经验总结)-优雅草卓伊凡|果果|小无
1994 14
微信百度字节小程序包过大解决方案(实战经验总结)-优雅草卓伊凡|果果|小无
|
存储 移动开发 小程序
校园圈子系统小程序(圈子论坛、私信聊天、资料共享、二手交易、兼职,跑腿)开源码开发/微信公众号、小程序、H5多端账号同步/搭建多城市的综合社交生活平台
基于开源技术栈构建的校园圈子系统小程序,整合社交与生活服务功能,涵盖兴趣圈子、私信聊天、资料共享、二手交易、兼职跑腿等六大核心模块。通过多端账号同步(微信公众号/小程序/H5),实现数据实时交互,满足学生群体的多元化需求。项目精准锚定校园市场,以“社交+服务”双轮驱动,提供一站式解决方案,支持快速部署与多校区运营,同时具备广告、佣金、会员等多元变现能力,是打造校园生态的理想工具。
1875 3
校园圈子系统小程序(圈子论坛、私信聊天、资料共享、二手交易、兼职,跑腿)开源码开发/微信公众号、小程序、H5多端账号同步/搭建多城市的综合社交生活平台
|
存储 人工智能 移动开发
uni-app+vue3接入deepseek-v3搭建跨端ai流式(小程序+app+h5)
基于Uniapp+Vue3+Markdown接入DeepSeek-V3聊天大模型,支持编译到H5+小程序+App端。实现流式输出、支持亮色/暗黑主题、代码高亮、会话本地存储等功能。
2548 12
|
小程序 Java 关系型数据库
weixin030英语学习交流平台小程序+ssm(文档+源码)_kaic
本文介绍了英语学习交流平台小程序的开发全过程,包括系统分析、设计与实现。该小程序基于Java的SSM框架进行后端管理开发,使用MySQL作为数据库,并借助微信开发者工具确保系统稳定性。小程序设有管理员和用户两个角色,功能涵盖个人中心、每日打卡、学习计划、论坛交流等,具有操作简单、界面清晰、功能齐全的特点。通过技术可行性、经济可行性和操作可行性分析,证明了系统的实用性和高效性,为英语学习者提供了一个便捷的交流平台。
|
Web App开发 移动开发 小程序
公众号小程序H5网页像素流送UE5模型的方法分享
本文探讨了如何通过像素流送技术在小程序、公众号等平台展示复杂的3D模型(如UE5引擎开发的楼盘模型、数字孪生展厅)。该技术将GPU和CPU算力需求转移到服务器端,使用户侧无需高性能硬件即可流畅体验。通过Webrtc实现实时云渲染,确保毫秒级响应,且兼容多种浏览器。使用点量云流等产品级软件,老项目只需重新打包为EXE格式,即可轻松嵌入H5网页、小程序或公众号中,支持Unity、WebGL等多种3D应用及传统CAD模型。
682 1
|
人工智能 小程序 程序员
【视频测评 DEMO 参考】VSCode 神级 AI 插件通义灵码:完全免费+实战教程+微信贪吃蛇小程序
VSCode 神级 AI 插件通义灵码:完全免费+实战教程+微信贪吃蛇小程序
1489 8
|
小程序 数据安全/隐私保护 开发者
【02】微信支付商户申请下户到配置完整流程-微信开放平台申请APP应用-微信商户支付绑定appid-公众号和小程序分别申请appid-申请+配置完整流程-优雅草卓伊凡
【02】微信支付商户申请下户到配置完整流程-微信开放平台申请APP应用-微信商户支付绑定appid-公众号和小程序分别申请appid-申请+配置完整流程-优雅草卓伊凡
1664 3