Q&A

liff.sendMessages の利用可否を調べる方法について

前提・実現したいこと

liff.sendMessages() には

トーク画面以外でLIFFアプリが開かれた場合は、メッセージは送信できません。

という条件があり、これは外部アプリからのリンクでLINEに遷移してきた場合等に当てはまるとおもいます。

トーク画面でLIFFアプリが開かれたかどうかを確認する方法はありますか?

発生している問題・エラーメッセージ

上記を判断する方法がなく、sendMessages() でエラーが発生してしまうことがあります。

該当のソースコード

試したこと

liff.isApiAvailable() は sendMessageには対応していないようです。 また、liff.isInClient() ではトーク画面にいるのかどうかまでは分かりません。

補足情報(FW/ツールのバージョンなど)

回答に対する補足の追記

liff.getOS() は今回求めていたものとは違いました。 たとえLIFFブラウザでLIFFが開いていたとしてもsendMessagesできない場合が存在するからです。 例えば外部アプリからの遷移でLIFFが開いた場合、トーク内でLIFFが開かないことがあり、この際sendMessagesできないことを確認しています。

  • 0
  • 2
  • 2945
  • twitter facebook

liff.getOS()を使用すれば、現在liffブラウザでliffが起動しているのか、別ブラウザで起動しているのかを判断できます。 https://developers.line.biz/ja/reference/liff/#get-os

  • 0

liff.getContext() で確認できるようでした。失礼しました。

  • 0

Similar posts

    No similar posts

Are you sure? question.vm