Facebook Messenger Webview可以访问LocalStorage API在客户端存储数据吗?

时间:2019-09-10 15:12:56

标签: facebook-messenger facebook-messenger-bot

如果他到达城市中的6个站点,我想在用户端存储6个布尔值。 我可以在Messenger Webview中使用LocalStorage甚至Cookie吗?

如果我关闭Webview并再次打开它,数据是否还会存在?

1 个答案:

答案 0 :(得分:0)

经过测试,可以。 因此,您可以像在服务器上的botfile app.js中一样轻松地打开Webview的按钮:

function openWebview(sender_psid, text,button_text){
    let button_response = {
    "attachment": {
      "type": "template",
      "payload": {
        "template_type": "button",
        "text": text,
        "buttons": [
          {
            "type":"web_url",
            "url":"<URL>",
            "title":button_text,
            "webview_height_ratio": "compact",
            "messenger_extensions": "true",
            "fallback_url": "<FB_URL>"
          }
        ],
      }
    }
  }
  callSendAPI(sender_psid, button_response);
}

要完整...

function callSendAPI(sender_psid, response) {
  // Construct the message body
   let request_body = {
     "recipient": {
       "id": sender_psid
     },
     "message": response
   }
  request({
    "uri": "https://graph.facebook.com/v2.6/me/messages",
    "qs": { "access_token": PAGE_ACCESS_TOKEN },
    "method": "POST",
    "json": request_body
  }, (err, res, body) => {
    if (!err) {
      console.log('message sent!')
    } else {
      console.error("Unable to send message:" + err);
    }
  });
}

在客户端的index.html上,您可以通过示例轻松存储简单数据:

<div id='myDiv'>nothing for the moment</div>
<script>
    localStorage.setItem('key1','myValue1')
    var test = localStorage.getItem('key1')
    document.getElementById('myDiv').innerHTML = test
</script>

您现在将在Facebook Messenger Webview上看到“ myValue1”