邮 箱:
   
密 码:
注册

PHP微信小程序如何获取openid,并传给webview

蜡笔小新 分类: 电脑/IT- 编程语言- 移动开发 被浏览 2676 次 一年前

举报

网页需要判断用户,所以需要小程序将值传递过去,但是webview的src是个属性,如何传递这量过去呢?比如openid
 
我有更好的答案∨
 图片
验证码 (看不清,点图换一张)
出错啦!!!
花花世界
采纳
推荐
采纳率:84% 10级 举报 一年前
微信小程序与webview是可以互相传值的,官方有相应的文档进行参考;
这里说一下,给webview传值只能通过url后面传参方式get进行传送
比如url?openid=123
说到这儿必须得说一下,小程序使用webview是有许多要求的:
@你需要使用https的网站
@需要用到小程序的appid与key
@需要设置域名为白名单
这里暂且假设你都完成了。

接下来不得不说一说openid
openid获取用小程序是可以获取的,如果你的后台网页也需要比如PHP,你需要将code传递过去然后接合appid secret进行鉴权,而不是将openid传过去。

给webview传参数,很简单,只需要wxml文件中,添加如下内容
<web-view src="{{url}}{{transCode}}"></web-view>

在小程序的js中添加类似以下内容:
Page({
data: {
motto: 'Hello World',
transCode: "",
url: "https://snowcoal.com?code=" ,
...
onLoad:function(){...
wx.login({
success: res => {
if (res.code) {
this.setData({//此种方法设置全局变量
transCode: res.code
})

这样就可以将参数更新到url上了。
这只是将code当作参数传给webview而已,需要得到openid还需要后台配合,只要有了code appid appsecret就可以获取openid了,只需要curl一下
https://api.weixin.qq.com/sns/jscode2session。。。
网上的方法很多

另外再教你一种方法异步传值:
//app.js
wx.login({
success: res => {
wx.getUserInfo({
success: function (res) {
var simpleUser = res.userInfo;
wx.request({
url: 'https://snowcoal.com/test.php',
data: {
usrInfo:simpleUser
},
success: function (result) {
console.log(result)//传入成功返回值
}
这种异步方法,可以预加载部分数据,比如初始化用户,很实用。
需要知道的是,异步是无界面的,等同于远程curl了一下,跟webview无关,也无界在, 但是你可以通过微信开发者工具的console看到返回数据。
需要特别注意的是,你在该异步路径文件内(test.php)内使用session与webview内的访问是不互通的,也就是说,你在该页面定义了一个session,无法在webview src路劲文件中获取,这点要注意。这个方法常用来将一些用户信息"送入数据库"。

最后webview也是小程序的一部分,当然可以互传参数,想了解最权威的介绍,还需要查阅官方事例。祝你成功!
评论10
 

全部回答(1)

分享: 

举报内容:

举报类型

举报原因


举报说明

详细的描述及证据可以帮助管理员更快速处理违规内容
关 闭 (close)