• index → index.wxml  套webwiew

    // url 活动url   bindmessage 接收信息
    <web-view src='{{url}}' bindmessage='message'></web-view>  
  • 微信头像昵称:登录与未登录的用户,都必须要获取头像昵称

  1. 发(微信分享)的用户 只能通过url传入参数:type、id、invitecode、token 

  2. 收(微信分享)的用户 getInfo()拿到本人头像昵称

     /**
    * 获取用户,头像,昵称,
    * 设置webview url
    */
    getUserInfo:function(code) {
    let me = this;
    wx.getUserInfo({
    withCredentials: true,
    lang: '',
    success: function (res) {
    // console.log(res, 'getUserInfo') const { nickName, avatarUrl } = res.userInfo;
    me.setData({
    userInfo:{
    avatarUrl: avatarUrl,
    nickName: nickName
    }
    }) res.jsCode = code; me.getSelf(res);
    },
    fail: function (res) {
    wx.redirectTo({
    url: '../getInfo/getInfo',
    })
    },
    complete: function (res) {},
    })
    },
  • 子功能页 获取数据、存入全局、调用数据

  1. 头部必须

    var app = getApp()  

    调用方法中才可以用app里的数据

    // 全局数据
    app.globalData.index_options  
  2. index -> index.js中的message函数,取到data信息对象,index.wxml中webview里的bindmessage就可以接收信息数据

    message:function(v) {
    
        let data = v.detail.data[v.detail.data.length - 1];
    
        this.setData({
    message: data
    })
    }, 
  • APP跳转小程序,打开网页,webview嵌套的项目,微信授权【登录】

    /**
    * 根据凭证获取openid,
    */
    onLoad: function (options) {
    // wx.hideShareMenu();
    // console.log(options, 'index.js/options', app.globalData.link_url)
    let me = this;
    wx.login({
    success: function (res) {
    //获取openid
    console.log(res.code)
    me.getUserInfo(res.code) },
    fail: function (res) {
    wx.showModal({
    title: 'login失败',
    content: '信息: ' + res.msg,
    })
    }
    });
  • 点击小程序顶部分享按钮分享时,分享的内容为当前页面的内容,需要使用wx.miniProgram.postMessage【发送信息】

  1. H5页面

    window.wx.miniProgram.postMessage({
    data: {……}
    });  
  2. 小程序:

    /**
    * 用户点击右上角分享
    */
    onShareAppMessage: function (ff) {
    console.log(this.data.message)
    let id = this.data.message.id ? this.data.message.id : ''; if(!id) {
    wx.showModal({
    title: '提示',
    content: '此页面不支持分享',
    })
    // return false;
    // return {
    // title: '益合众',
    // path: '/pages/index/index'
    // } } let url = this.data.message.url;
    console.log(url) let title = this.data.message.title ? this.data.message.title:'分享';
    let desc = this.data.message.desc ? this.data.message.desc:null;
    // if (desc) {
    // return {
    // title: title + `(${desc})`,
    // path: '/pages/index/index?' + url,
    // success: function (res) { }
    // }
    // } else {
    return {
    title: title,
    path: '/pages/index/index?' + url,
    success: function (res) { }
    }
    // }
    }  
  • 支付:共有4个支付pay  -  pay(VIP支付)、activitypay(活动支付)、fanspay(粉丝支付)、mallpay(商城支付)

  1. 微信获取openId(关键key) → 下单 → 支付(走接口,后台会返回一些微信支付需要的参数) → 鉴权(调起微信支付)wx.requestPayment  【支付API - 微信开发者文档

  2. 活动支付完,没提示,直接返回活动页

  3. 商城支付 返回 订单页面;其它支付 都返回 原页面

  • 小程序支付成功之后,返回一个res  -  type里的mallPayRes之类,作支付结果提示
  • 提交小程序
  1. App.js  dev 本地环境  pro 正式环境  test 测试环境

     env: function(val) {
    switch (val) {
    case "dev":
    this.globalData.serverHost = 'http://192.168.0.116';
    this.globalData.serverPort = '8099';
    this.globalData.host = this.globalData.serverHost + ":" + this.globalData.serverPort; this.globalData.sec_serverHost = 'http://192.168.0.116';
    this.globalData.sec_serverPort = '9099';
    this.globalData.sec_host = this.globalData.sec_serverHost + ":" + this.globalData.sec_serverPort; this.globalData.link_url = 'http://192.168.0.104:8090';
    break;
    case "pro":
    this.globalData.host = 'https://back.yihezo.cn'; this.globalData.sec_host = 'https://sec.yihezo.cn'; this.globalData.link_url = 'https://yihezo.cn';
    break;
    case "test":
    this.globalData.host = 'https://testback.yihezo.cn'; this.globalData.sec_host = 'https://testsec.yihezo.cn'; this.globalData.link_url = 'https://test.yihezo.cn'; break;
    } },  
  2. 提交前,打开相应变量
    // 指定项目启动模式
    // const envVal = 'dev'
    const envVal = 'test'
    // const envVal = 'pro'
    this.env(envVal);
    console.log('配置变量完毕!当前环境: ' + envVal)  
  • 上传小程序 - 上传体验版只需要更新,上传正式版需要先提交审核
  1. 更新版本号  当前0.7.3,没有特别的意义,下次更新数字做区分即可
  2. 填写项目备注 上线更新功能
  3. 小程序上传 = 部署,与web项目不同,不需要手动拉取代码到服务器上传

注:未经允许,不得转载

【零售小程序】—— webview嵌套web端项目(原生开发支付功能)的更多相关文章

  1. 小程序 web-view 嵌套的网页跳转到小程序内部页面 实现无缝连接

    需要在H5页面被作出判断和处理  点击事件发生时跳转到小程序内部页面 1.引入小程序提供的JS <script type="text/javascript" src=&quo ...

  2. 小程序web-view wx.miniProgram.postMessage 坑记录

    web-view吧,其实微信官方应该是非常不支持在小程序上嵌套web的,它希望你直接用小程序上的代码,而放弃web的实现,当然,也是为了防止用小程序去嵌套别的广告页面.所以官方对web-view的操作 ...

  3. 小程序webview调用微信扫一扫的“曲折”思路

    自上一篇遇到webview中没有返回按钮之后,虽然跳出坑了.解决方案:<小程序webview跳转页面后没有返回按钮完美解决方案> 但是,小程序踩坑之路并没有结束.在公众号网页中通过配置AP ...

  4. 微信小程序web-view(webview) 嵌套H5页面 唤起微信支付的实现方案

    场景:小程序页面有一个web-view组件,组件嵌套的H5页面,要唤起微信支付. 先讲一下我的项目,首先我是自己开发的一个H5触屏版的商城系统,里面含有购物车,订单支付等功能.然后刚开始,我们公众号里 ...

  5. 小程序webview实践

    小程序webview实践 -- 张所勇 大家好,我是转转开放业务部前端负责人张所勇,今天主要来跟大家分享小程序webview方面的问题,但我并不会讲小程序的webview原理,而我主要想讲的是小程序内 ...

  6. 小程序webview应用实践

    原文:小程序webview实践 作者:张所勇(转转开放业务部前端负责人) 公众号:大转转FE Fundebug经授权转载,版权归原作者所有. 大家好,我是转转开放业务部前端负责人张所勇,今天主要来跟大 ...

  7. 微信小程序web-view之wx.miniProgram.redirectTo

    17年微信小程序官方提供了web-view组件. 官方描述:web-view组件是一个可以用来承载网页的容器,会自动铺满整个小程序页面.个人类型与海外类型的小程序暂不支持使用. 这段时间研究了一下小程 ...

  8. 小程序webview跳转页面后没有返回按钮完美解决方案

    随着小程序越来越火爆,使一个产品如果只有公众号H5页面和APP显得不怎么完美,总感觉不搭上小程序这趟流量车,就会少了点什么,心里别扭地很.在此驱动下,我所在公司也决定赶紧上车. 但是,如果要按照小程序 ...

  9. 微信小程序入门与实战 常用组件API开发技巧项目实战*全

    第1章 什么是微信小程序? 第2章 小程序环境搭建与开发工具介绍 第3章 从一个简单的“欢迎“页面开始小程序之旅 第4章 第二个页面:新闻阅读列表 第5章 小程序的模板化与模块化 第6章 构建新闻详情 ...

随机推荐

  1. oracle三种表连接方式

    1. 排序合并连接(Sort Merge Join) 排序合并连接的执行过程如下所示: * 将每个行源的行按连接谓词列排序 * 然后合并两个已排序的行源,并返回生成的行源 例如: select * f ...

  2. zookeeper核心知识与投票机制详解

    Zookeeper数据模型与session机制:zookeeper的数据模型有点类似于文件夹的树状结构,每一个节点都叫做znode,每一个节点都可以有子节点和数据,就好像文件夹下面可以有文件和子文件夹 ...

  3. 我所不知的JS

    几天前在阅读 MDN 文档时我发现了一些我从来不知道的 JS 特性和 API. 下面是一份简短的清单, 无论有用不有用——学习 JS 的道路似乎是没有尽头的. 标签语句 在 JS 中,你可以对 for ...

  4. cookie Web Storage API

    https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Storage_API/Using_the_Web_Storage_API https://d ...

  5. Nginx 故障实例

    linux vi 操作提示 Found a swap file by the name "/usr/local/nginx/conf/.nginx.conf.swp" 解决方法: ...

  6. GitHub源码攻击事件

    黑客擦除了微软多达392个代码存储库,并提出勒索要求.此前,黑客攻击了包含微软在内的大批受害者的Git存储库,删除了所有源代码和最近提交的内容,并留下了支持比特币支付的赎金票据. 勒索信息如下: “要 ...

  7. Scrapy-redis分布式+Scrapy-redis实战

    [学习目标] Scrapy-redis分布式的运行流程 Scheduler与Scrapy自带的Scheduler有什么区别 Duplication Filter作用 源码自带三种spider的使用 6 ...

  8. nginx的反向代理和配置

    最近有打算研读nginx源代码,看到网上介绍nginx可以作为一个反向代理服务器完成负载均衡.所以搜罗了一些关于反向代理服务器的内容,整理综合. 一  概述 反向代理(Reverse Proxy)方式 ...

  9. MyEclipse使用教程:unattended安装

    [MyEclipse CI 2019.4.0安装包下载] 以下内容适用于2013及以上版本. 运行无提示安装程序 1. 创建一个unattended response文件. 2. 要激活unatten ...

  10. java课堂作业3 第一题 能查阅申请对象个数

    实验代码 public class Num { public static void main(String[] args) { // TODO Auto-generated method stub ...