项目开发中赶上三端接入h5的需求,因此本身动手作h5页面,可是在作的过程当中也赶上了许多的问题javascript

小程序端不支持在本地引入,因此须要将h5发布服务器,以请求接口的形式进行访问html

首先是H5的开发:java

像素单位:写的时候由于须要顾及ios和安卓,并且小程序端也会赶上各类屏幕比,比较麻烦,单位尽可能使用rem;python

请求:

若是闲麻烦的能够本地引入jq,若是不以为麻烦的能够本身使用js进行请求封装:ios

复制可用,惟一须要修改的地方xhr.setRequestHeader(),后台设置有权限,因此必须在请求头携带tokenweb

function ajax(options,tokena){

//建立一个ajax对象

var xhr = new XMLHttpRequest() || new ActiveXObject("Microsoft,XMLHTTP");

//数据的处理 {a:1,b:2} a=1&b=2;

var str = "";

for(var key in options.data){

str+="&"+key+"="+options.data[key];

}

str = str.slice(1);

if(options.type == "get"){

var url = options.url+"?"+str;

xhr.open("get",url);

xhr.send();

}else if(options.type == "post"){

xhr.open("post",options.url);

xhr.setRequestHeader("X-Authorization",'Bearer ' + tokena);

xhr.setRequestHeader("Content-type","application/json;charset=UTF-8");//能够发送

xhr.send(options.data)

}

//监听

xhr.onreadystatechange = function(){

//当请求成功的时候

if(xhr.readyState == 4 && xhr.status == 200){

var d = xhr.responseText;

//将请求的数据传递给成功回调函数

options.success&&options.success(d)

}else if(xhr.status != 200){

//当失败的时候将服务器的状态传递给失败的回调函数

options.error&&options.error(xhr.status);

}

}

}

请求用法:ajax

ajax({

url:'http://222.211.87.12:9722/api/strategy/rong/award',

type:'post',

data:{},

success:res=>{}

error:err=>{}

})

若是在请求接口地址时json

让你后台去处理跨域问题,处理不了让他百度小程序

h5页面接收参数:

无论是小程序仍是安卓ios端,须要将参数拼接到请求地址api

var query = window.location.search;

var getParam = JSON.parse(JSON.stringify(parseURL(query)));

//解析方法

function parseURL(url){

var url = url.split("?")[1];

var para = url.split("&");

var len = para.length;

var res = {};

var arr = [];

for(var i=0;i

arr = para[i].split("=");

res[arr[0]] = arr[1];

}

return res;

}

getParam 即为解析后的json格式参数

H5跳转到小程序的某页方法:

h5页面引入:后可直接调用

注:在设计h5页面的时候,小程序的头部导航因为官方webView不受navigationStyle: custom的影响,因此会存在背景被挤压的问题

小程序端:

须要新建一个page去放置承载H5的webview

wxml:其中urls是地址信息

其余页面要跳转到H5页面,就直接跳转到该webView页面,webView会自动根据src中的地址载入到该页,载入后的html页面自动铺满当前页,没法在webView页中进行通常调试。

由于跳转到该页面的时候就直接载入了src地址的页面,咱们须要在小程序webView页面加载时(onLoad)对src进行配置,因此其余页面在跳转到webView页面时也须要再次传递参数,须要将h5页面的地址,和h5页面须要的参数一并传递,而后在webView页面进行地址二次拼接。

跳转页

let id = e.currentTarget.dataset.id;

let hrefs = e.currentTarget.dataset.href

//跳转webview页面

wx.navigateTo({

url: '../content/webView/webView?hrefs=' + hrefs

)}

webView页

/**

* 生命周期函数--监听页面加载

*/

onLoad: function (options) {

urls = app.data.detailHref + '&token=' + options.token + '&tag=' + options.tag + '&SPID=' + options.SPID

this.setData({

urls: urls

})

}

在跳转h5页面时出现:

或者在微信开发者工具中出现白屏页,属正常现象,须要将该请求地址进行认证为https

完整的小程序H5开发介绍完毕

小程序接入h5页面_原生小程序接入H5页面,请求后台接口,获取数据相关推荐

  1. 微信小程序单纯展示用户 头像、昵称、性别,不通过后台接口获取

    open-data 用于展示微信开放的数据. 使用方法 <open-data type="groupName" open-gid="xxxxxx"> ...

  2. 小程序接入h5页面_微信小程序开发接入colorUI

    本文接前天的小程序开发第一篇文章,上篇文章完成了微信官方提供的小程序初始模板代码的构建,今天这篇文章主要讲解小程序使用colorUI框架,并构建一个简单的页面. 前注: 1.本文代码基于第一篇文章的基 ...

  3. 小程序接入h5页面_微信小程序跳转外部链接(h5页面)以及数据交互

    最近项目有个需求,在微信小程序中跳转外部链接完成相关的操作,操作完成后返回微信小程序的相关页面. 1.跳转外部链接(官方文档) 1)入口 //跳转到入口 wx.navigateTo({url: '.. ...

  4. taro 小程序转h5之后报错_原生小程序转H5

    原生小程序转Taro,Taro转多端 这里先讲一下需求,公司之前的小程序是用原生开发的,目前有客户需要同样的H5版本的项目,考虑短时间内开发出一个差不多100个页面左右的H5项目不太现实.所以这里就用 ...

  5. 小程序嵌套h5页面_微信小程序内嵌h5页面

    概况 使用 标签能在小程序中打开外部网页,但是要打开的网页的域名必须跟小程序的业务域名(业务域名可以在小程序的后台管理界面添加)一致,否则在真机上是打不开的.如果开发工具上勾选了'不校验域名',在开发 ...

  6. 小程序嵌套h5页面_快速小程序开发之微信小程序内嵌 H5

    简介:微信小程序中可以直接运行 web 页面,这一新组件 web-view 的产生,可能直接导致小程序数量迎来一波高峰.本篇博文将从业务选型,微信小程序后台配置,使用 web-view 完成登录业务以 ...

  7. 高德地图小程序步行路线显示_微信小程序之:小程序接入高德地图SDK

    前言 最近在捣腾小程序,想开发一个自己的小程序,过一把独立开发的瘾. 自己设计,自己搞数据,自己找图标,自己决定要或者不要什么功能,完全跟着心走,目前体验下来,感觉还是蛮爽的.比在公司产品要你做什么你 ...

  8. 小程序 多个 veb-view返回 返回了两个页面_微信小程序学习心得 - 忒扎心

    我们写小程序时都要跳转页面的,也会有底部导航来进行切换 这个时候就要介绍下窗口是怎样配置的 要在文件里写一个tabBer对象 里面在定义一个list数组里面放我们定义的几个需要切换的页面 如下 最多l ...

  9. 小程序分享朋友圈_改造小程序,增加分享朋友圈代码

    前几天微信小程序做了更新,开放公测分享小程序到朋友圈的代码,看了官方文档,如果要把现有的小程序分享到朋友圈还是很简单的,今天我分享一个最简单的方法."shareAppMessage" ...

最新文章

  1. ueeditor 百度编译器使用onchange效果
  2. Python最简编码规范
  3. Kafka consumer group位移0ffset重设
  4. 网络推广外包——网络推广外包专员浅析移动端网站建设要点
  5. 原生javascript添加和删除class
  6. 游戏总监“姐夫”今日离开暴雪,玩家却欢乐地吃着『暴雪要凉』的瓜
  7. 用于CRUD和更多的模型驱动的RESTful API
  8. WLAN概述——无线网络简介
  9. [弗曼学习法] Study for learning methods
  10. 大数据日志分析系统-介绍
  11. 《SteamVR实战之PMCore》(Yanlz+Unity+XR+SteamVR+VR+AR+MR+Valve+Oculus+立钻哥哥+==)
  12. vue-waterfall2瀑布流使用及坑
  13. NLP是什么,百度的NLP技术有有哪些?
  14. CSS伪元素(以:after为例)插入图片
  15. 基于WPF的科学计算器程序
  16. 超百万观众同场看直播流畅不卡顿,快手如何做到的?|首次披露
  17. 【学术】如何长时间高效学习
  18. 解决edge浏览器无法打开pdf文件问题
  19. 洛谷 P5664 Emiya 家今天的饭【dp】
  20. 目标检测 YOLOv5 - 如何提高模型的指标,提高精确率,召回率,mAP等

热门文章

  1. python安装jupyter出现问题_有关jupyterhub安装的问题
  2. 【Python制作小游戏】一篇文章带你做出自己的“大鱼吃小鱼”
  3. gnu grub version 2.0.2设置启动顺序_如何修复grub异常
  4. Python+OpenCV:图像Shi-Tomasi角点检测器
  5. 标准 C I/O函数
  6. 阻止具有特定文件扩展名的附件的电子邮件
  7. 数 AI 人物还看今朝!CCAI 2017 人工智能青年论坛即将启航
  8. 为IoT应用搭建DevOps管道
  9. 递推DP URAL 1586 Threeprime Numbers
  10. top、kill实现进程结束