Scala.jsでsendBeacon
APIを使用し、ByteBuffer
の形式でバイナリデータを送信したいが、それをBodyInit
に変換していない。私はboopickleを使用しています。これは、バイナリByteBuffer
に、私のインスタンスのエンコードされたデータが含まれています。ByteBufferをScala.jsのBodyInitに変換するには?
私が提案したように、ByteBuffer
をArrayBuffer
に変換してBodyInit
にキャストしようとしました。しかし、Firefox 53.0.3でこのコードを実行すると、ランタイムエラーは発生しませんが、ペイロードには、バイナリデータそのものではなく、ちょうど[object ArrayBuffer]
が含まれています。ここで
コードです:Scala.jsで
import scala.scalajs.js.typedarray.TypedArrayBufferOps._
import boopickle.Default._
import org.scalajs.dom.experimental.BodyInit
import org.scalajs.dom.experimental.beacon._
case class Message(firstName: String, lastName: String)
val message = Message("John", "Doe")
val data = Pickle.intoBytes(message).arrayBuffer()
dom.window.navigator.sendBeacon("/api", data.asInstanceOf[BodyInit])
ありがとう!それは私のためにそれをしました。バウンティはあなたの2時間後です。 –