0

フィドルのボタンをクリックしてシミュレート:https://jsfiddle.net/chpaeeL9/1/テキストボックスにテキストを挿入し、ここではボットフレームワークのWebチャット

マイクロソフトボットフレームワークは、あなたのボットに話をすることができますウェブチャットモジュールを持っています。

ユーザーがSay Hiボタンをクリックすると、私はウェブチャットのテキストボックスにテキストを配置し、JavaScriptを使用してウェブチャット内の送信]ボタンをクリックします。

はあまりにも簡単に何かのように聞こえるが、それはありませんでした。ここに私が現在持っているコードはありません、それは動作しません:クリックイベントは何とかトリガされていません。

$('#sayhibutton').click(function() { 
    $('.wc-console').addClass('has-text'); // works 
    $('.wc-shellinput').val("Hi bot!").change(); // works 
    $('.wc-send').click(); // doesn't work! 
    $('.wc-send svg').click(); // doesn't work either 
}); 

アップデート:それが役立つ場合、インターフェースはReactを使用して書かれているようです。

アップデート:私の質問は、ウェブチャットでのiframeを回避する方法についての私の前の質問と異なっています。

+0

[ボットフレームワークのWebChatウィンドウにメッセージを自動的に送信](https://stackoverflow.com/questions/46895279/automatically-send-a-message-into-the-webchat-window-in- bot-framework) – davethecoder

答えて

0

OKは、より良い選択肢がないために私の解決策はかなり汚れて醜いものでした。

ではなく、CDNのバージョンよりも、HTMLからファイルを保存したファイル参照にbotchat.jsにコードを保存します。

Chromeでファイルをプリティプリントすると言うラインを見つける:これは、基本的にはむしろthis.textInput.valueからメッセージテキストを取ることを意味

this.textInput.value.trim().length > 0 && this.props.sendMessage(this.textInput.value) 

e.prototype.sendMessage = function() { 
    this.props.inputText.trim().length > 0 && this.props.sendMessage(this.props.inputText) 
} 

はこれで真ん中の行を置き換えをthis.props.inputTextよりも、言い換えれば、テキスト入力のDOMノードから直接取り出してください。

何らかの理由でテキストボックスにchangeイベントが発生しても、実際にはテキストボックスにchangeというイベントが発生することはありません。そのため、これを行う必要があります。

+0

は範囲外です。あなたは本当にダイレクトラインを使用しています。その後、特にこのシナリオ – davethecoder

+0

https://github.com/Microsoft/BotFramework-WebChatがレポへのリンク、およびバックチャネルに直接ラインとの情報についての情報のために構築されたメッセージ、または代替のバックチャネルを使用することですが、構成 – davethecoder

関連する問題