微信小程序--通过请求网页获取信息并显示

效果描述:

按动主页按钮跳转至列表页,在列表页显示请求网页所获取的信息,并通过所得信息的id的不同,链接到不同的网页进一步获取不同信息。

触碰按钮跳转至列表页触碰表题按钮跳转至详情页,其中不同的按钮对应的详情页内容不同而格式相同。

这样的好处是,可以通过网页信息的改变自动改变页面信息。

流程:

使用Api:

wx.request() //请求网页信息wx.navigateTo()  //跳转页面

注意点:

1.在列表页,要将网页上获取的信息根据id的不同,选择对应信息显示在列表页,并将其显示在详情页的开头出,该处使用全局变量来实现页面间的信息传输

2.列表页跳转至详情页,要根据自身携带的id来选择将从那个网页获取详情并显示,该处通过字符串的拼接实现页面间的id传输

Api使用方法:

获取网页信息:

wx.request({
      url: ‘http://www.获取信息的网址‘,
      data: ‘‘,
      header: {},
      method: ‘GET‘,
      dataType: ‘json‘,
      responseType: ‘text‘,
      success: function(res) {
        console.log(res)
        that.setData({
          faq:res.data.content,
          faqId:res.data.content.id,
        })
      fail: function(res) {},
      complete: function(res) {},
    }) 

跳转到faq页面:

wx.navigateTo({
      url: ../faq/faq,
    }) 

全局变量的使用:

在列表页面,每个列表的标题来源于网页信息,所以定义全局变量用来在页面间传输标题信息。全局变量定义在app.js中。

//app.js
App({
  faqPage:"";
})

因为页面要使用全局变量,所以要引入app.js。

var app = getApp();

全局变量的赋值和使用:

//faq.js 列表页answer:function(es){                       //点击按钮后调用answer函数,传入值es
    var faqId = es.currentTarget.id     //将es里表示id的部分传给faqId
    var faq = this.data.faq;
    var n = faqId;                             //通过不同的id将不同的标题赋给全局变量faqPage
    app.faqPage = faq[n-1].question;
  }
//faq6.js  详情页
data{
    faqP:""   //定义本页的变量
}
onLoad: function (options) {
    var faqPage1 = app.faqPage//页面初始化时调用全局变量,将其赋值给函数的局部变量faqPage1
    this.setData({
      faqP: faqPage1                 //将函数的局部变量赋值给页面的data里的变量faqP,这样就可以在faq6的wxml里使用该变量了。
    })
}

字符串的拼接实现页面间的id传输:

answer:function(es){
    var faqId = es.currentTarget.id
    var newUrl = ‘../faq6/faq6?buttonId=‘ + faqId;//‘原链接?buttonId=‘+id,这个buttonId是一个自己定义的变量名,可更改。
    wx.navigateTo({
      url: newUrl,            //新的链接,跳转至原链接地址所指页面,并传给它一个id
    })
  }
wx.request({
      url: ‘http://www.请求网页‘ + buttonId,     //网页的相同部分+id,字符串的拼接形成不同的网址
      data: ‘‘,
      header: {},
      method: ‘GET‘,
      dataType: ‘json‘,
      responseType: ‘text‘,
      success: function (res) {
        },
      fail: function (res) { },
      complete: function (res) { },
    })
  }

源代码:

//faq.js
var app = getApp();

Page({

  /**
   * 页面的初始数据
   */
  data: {
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getData_faq()
  },

  //请求问题界面
  getData_faq:function(){
    var that = this;
    wx.request({
      url: ‘http://www.网络请求列表信息‘,
      data: ‘‘,
      header: {},
      method: ‘GET‘,
      dataType: ‘json‘,
      responseType: ‘text‘,
      success: function(res) {
        that.setData({
          faq:res.data.content,
          faqId:res.data.content.id,
        })
      },
      fail: function(res) {},
      complete: function(res) {},
    })
  },
  // 按钮跳转回答界面
  answer:function(es){
    var faqId = es.currentTarget.id
    var faq = this.data.faq;
    var newUrl = ‘../faq6/faq6?buttonId=‘ + faqId;
    wx.navigateTo({
      url: newUrl,
    })
    var n = faqId;
    app.faqPage = faq[n-1].question;
  }
})
//faq6.js
var app = getApp();

Page({
  /**
   * 页面的初始数据
   */
  data: {
    faqP: ""
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.getData_faq(options.buttonId)
    var faqPage1 = app.faqPage
    this.setData({
      faqP: faqPage1
    })
  },

    //请求回答api
  getData_faq: function (buttonId) {
    var that = this;
    var n = app.faqId;
    wx.request({
      url: ‘http://www.详情页网络请求网址‘ + buttonId,
      data: ‘‘,
      header: {},
      method: ‘GET‘,
      dataType: ‘json‘,
      responseType: ‘text‘,
      success: function (res) {
        that.setData({
          content: res.data.content
        })
      },
      fail: function (res) { },
      complete: function (res) { },
    })
  }
})

原文地址:https://www.cnblogs.com/cff2121/p/9337498.html

时间: 2024-11-14 11:51:35

微信小程序--通过请求网页获取信息并显示的相关文章

微信小程序 网络请求之re.request 和那些坑

微信小程序有四种网络请求类型,下面只详细介绍普通HTTPS请求(wx.request) 普通HTTPS请求(wx.request) 上传文件(wx.uploadFile) 下载文件(wx.downloadFile) WebSocket通信(wx.connectSocket) 首先,先确认是否设置了合法域名,或者在开发环境下不校验合法域名.关于设置合法域名请看→微信小程序 网络请求之设置合法域名   以下是wx.request的详细说明,截图于微信小程序开发文档 在微信index.js 发起一个普

微信小程序数据请求方法wx.request小测试

微信小程序数据请求方法 wx.request wxml文件: <view> <textarea value="{{textdata}}"/> </view> <button bindtap="RequestData" value="Button">Button</button> 主要是一个按钮,点击后将请求的数据写入到textarea中 js文件: Page({ data:{ textd

微信小程序:java后台获取openId

一.功能描述 openId是某个微信账户对应某个小程序或者公众号的唯一标识,但openId必须经过后台解密才能获取(之前实现过前台解密,可是由于微信小程序的种种限制,前台解密无法在小程序发布后使用) 二.实现流程 1. 获取微信用户的登录信息: 2. 将encryptedData中的数据作为参数传给java后台 3. java后台进行解密 三.代码实现 1. 后台的解密代码 1 /** 2 * decoding encrypted data to get openid 3 * 4 * @para

【微信小程序】springboot后台获取用户的openid

openid可以标识一个用户,session_key会变,所以来获取一下openid. openid不能在微信小程序中直接获取,需要后台发送请求到微信的接口,然后微信返回一个json格式的字符串到后台,后台处理之后,再返回到微信小程序. 发布的小程序需要https的域名,而测试的时候可以使用http. 小程序在app.js中,修改login()中的内容: // 登录 wx.login({ success: res => { // 发送 res.code 到后台换取 openId, session

第三篇、微信小程序-网络请求API

wx.request(OBJECT)发起的是https请求.一个微信小程序,同时只能有5个网络请求连接. OBJECT参数说明: 效果图: net.js Page({ data:{ result:{}, }, onLoad:function(options){ this.getDate('http://baobab.wandoujia.com/api/v2/feed?num=2'); }, /** * 网络请求的函数:接收一个URL参数 */ getDate:function(URL){ var

让微信小程序每次请求的时候不改变session_id的方法

每次微信小程序请求的时候都会改变session id, 还好他的请求方法内可以设置header头 所以只需要在启动程序后第一次请求服务器获得一个sessionid(或是唯一编号 ) 然后本地存储起来,每次请求服务器的时候就在header里面带上 但是有个问题就是 你本地存储了这个session id后那么以后每次都会是这个session id 所以建议在程序每次启动的时候先清空本地存储的session id 然后发送首次请求获取新的sessionid 我把它请求的方法 重新包装了下 顺便贴出来大

微信小程序 POST请求

微信小程序开发中网络请求必不可少.GET.POST请求是最常用的.GET请求,POST请求的时候有好几个坑.我已经为大家填好了. <img src="http://img.blog.csdn.net/20161017170933243?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" align

微信小程序内嵌网页的一些(最佳)实践

前言 3 个月前,微信小程序推出了 web-view 组件引发了一波小高潮,笔者所在的大前端团队写过一篇浅析,详情可见:浅谈微信小程序前端生态. 我们曾大胆猜想,这一功能,可能直接导致小程序数量增长迎来一波高峰. 毕竟磨刀霍霍却一直资源不足的团队应该不少,现在可以把已有 H5 应用嵌入到小程序 web-view 容器中,以最低的开发成本坐蹭微信流量红利,何乐而不为呢? 我们也曾畅想也许"小程序页面+ web 页"混合开发(甚至 web 更重)会成为以后的新趋势. 2M 代码限制(如今已

微信小程序request请求实例,网络请求。

最近微信小程序开始开放测试了,小程序提供了很多api,极大的方便了开发者,其中网络请求api是wx.request(object),这是小程序与开发者的服务器实现数据交互的一个很重要的api. 官方参数说明如下 OBJECT参数说明: 参数名 类型 必填 说明 url String 是 开发者服务器接口地址 data Object.String 否 请求的参数 header Object 否 设置请求的 header , header 中不能设置 Referer method String 否