Обёртывание JavaScript FFI в любом

Я очень новичок в JavascriptFFI и будет очень признателен за помощь здесь.

У меня есть рабочий код JavaScript, чтобы захватить изображение как FILE URI с камеры (через плагин Cordova Camera). Теперь он может вернуть либо ошибку, либо файл URI в случае успеха. Мы хотим сопоставить их Left Int Text а также Right GHCJS.DOM.Types.File (не уверен, что я получил тип FILE URI право).

Вот код javascript (непроверенный, так как я изменил его из проверенного, чтобы он возвращал только fileuri или ошибку вместо отображения в браузере).

    <script type="text/javascript" charset="utf-8">

    var destinationType; // sets the format of returned value

    // Wait for device API libraries to load
    document.addEventListener("deviceready",onDeviceReady,false);

    // device APIs are available
    function onDeviceReady() {
        pictureSource=navigator.camera.PictureSourceType;
        destinationType=navigator.camera.DestinationType;
    }

    // Called when a photo is successfully retrieved
    //
    function onPhotoURISuccess(imageURI) {
      console.log("success");
      return imageURI;
    }

    // A button will call this function for testing
    function capturePhotoEdit() {
      // Take picture using device camera, allow edit, and retrieve image as binary data 
      navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 20, allowEdit: true,
        destinationType: destinationType.FILE_URI });
    }

    // Called if something bad happens.
    //
    function onFail(message) {
       console.log("failure");
      return[1, message];
    }

    </script>

Я буду признателен за указатели о том, как сделать FFI для navigator.camera.getPicture с ghcjs-dom-0.2.3.1 (я использую его с Reflex), так что возвращаемый результат находится в любом из них.

Я могу затем обернуть File URI в ByteString (Я думаю, через Cordova файл API, чтобы сначала преобразовать его в arraybuffer) и отправить его на удаление сервера для сохранения.

0 ответов

Другие вопросы по тегам