支付宝小程序开发文档ajax调用,支付宝小程序web-view与h5交互(坑)

小程序端代码写法

axml文件代码:

JS文件代码:

Page({

data: {

webUrl: String,

},

sendToH5Message(e) {

my.alert({

content: JSON.stringify(e.detail),

});

console.log(‘E:’ + e.detail);

},

onLoad(query) {

///接收到的值

console.log(query.webUrl);

this.setData({

webUrl: query.webUrl,

})

this.webViewContext = my.createWebViewContext(‘web-view-1’);

},

onReady() {

console.log(“onReady”);

this.webViewContext.postMessage({ name: ‘1’ });

}

});

h5页面代码,react

if (navigator.userAgent.indexOf('AlipayClient') > -1) {

document.writeln('

}

app.js代码

componentDidMount() {

// 接收来自小程序的消息。

window.my.onMessage= function (e) {

console.log(‘收到消息:’+ e);

window.my.alert({

content:e.name,

});

// let onMessage = JSON.parse(e.res.data).name;

let onMessage = e.name;

this.setState({

onMsg: onMessage

});

}.bind(this);

}

render() {

return (

{this.state.onMsg}

this.myInput = e}/>

{

this.postMessage(this.myInput.value)}

}>发送

this.getEnv()}>获取

);

}

getEnv=()=>{

// window.my.getEnv(function(res) {

// console.log(res.miniprogram) // true

// });

};

postMessage=(postData) => {

// 网页向小程序 postMessage 消息

console.log('发送消息:'+ postData);

window.my.postMessage({sendMsg:postData})

};

}

坑点: 支付宝小程序模拟器运行结果与真机运行结果相差巨大!一切以真机运行为准

在支付宝真机运行时能够正确打开测试版h5网页需要设置如下:

635e08b2980312064bee995e24c5e273.png

真机运行跟模拟器运行接收到的数据结构不一致

模拟器

// let onMessage = JSON.parse(e.res.data).name;

真机

let onMessage = e.name;

小程序直接向h5发送消息h5无法正确获取,真机可以正常获取数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值