我已经使用botframework v4创建了一个网络应用程序bot,并将其与使用iframe的网络应用程序集成在一起。 我想访问机器人所在页面的当前URL。
我尝试了反向通道机制,但是未能从ChannelData的服务器端获取任何值。 我在头标签中包含脚本标签 src =“ https://cdn.botframework.com/botframework-webchat/latest/botchat.js” >和iframe iframe id =“ chatBot” src ='https://webchat.botframework.com/embed/EdgewellSampleBot?s=xxx'style ='min-width:400px;宽度:100%;最低高度:500像素;'> 在body标签中,并在页面加载时调用 getUrl()。
<script>
function getURL()
{
var dl = new BotChat.DirectLine({
secret: 'xxx',
webSocket: false,
pollingInterval: 1000,
});
var urlref = window.location.href;
BotChat.App({
botConnection: {
...dl,
postActivity: activity => dl.postActivity({
...activity,
channelData: { pageurl: urlref }
})
},
user: { id: 'userid' },
bot: { id: 'xxx' },
resize: 'detect'
}, document.getElementById("chatBot"));
}