【サーバ機能 x ハイブリッドアプリ】カメラ写真を撮って、サーバーにアップし、共有するサンプルアプリを作ってみました!


Monaca x NIFTY Cloud mobile backend カメラ写真をアップ・ダウンロードするサンプル

Overview

元の記事:リンク

Monacaを用いて作ったアプリとmobile backendを連携して、スマホカメラで撮った写真をmBaaSサーバにアップロードする機能を実装するサンプルコードとなります。
* HTML/CSS/JavaScriptでマルチプラットフォーム(iOS/Android/Windowsなど)にアプリを開発できる統合開発環境Monaca
* スマホアプリのサーバ側機能(プッシュ通知、会員管理、DBなど)をサーバ開発不要で実装できるNIFTY Cloud mobile backend

Demo

  • 取得完了画面

Requirement

Installation

キーをコピーし、追記します。

Description

  • コードの説明

File: www/index.html

  • 初期化設定
var appKey    = "YOUR_APP_KEY";
var clientKey = "YOUR_CLIENT_KEY";
var fileName = "uploaded.jpg"; //保存File名

///// Called when app launch
$(function() {
  NCMB.initialize(appKey, clientKey);
});

上記のコードでアプリケーションキーとクライアントキーを指定し、
NCMB.initialize(appKey, clientKey) でmBaaSサーバと連携を行います。

  • カメラ処理
    ```JavaScript
       function snapPicture () {
    navigator.camera.getPicture (onSuccess, onFail,
    { quality: 50, destinationType: Camera.DestinationType.DATA_URL});

     //成功した際に呼ばれるコールバック関数
     function onSuccess (imageData) {
         var byteCharacters = toBlob(imageData);
         var NCMBFile = new NCMB.File(fileName, byteCharacters, "image/png");
         NCMBFile.save().then(function() {
           //NCMBサーバーからファイルをダウンロード
           var getFile =  new NCMB.File(fileName);
           var image_canvas = document.getElementById("showImage");
           getFile.fetchImgSource(image_canvas);
         },
         function(error) {
          // The file either could not be read, or could not be saved to NCMB.
           alert(JSON.stringify(error));
         });
     }
    
     //失敗した場合に呼ばれるコールバック関数
     function onFail (message) {
         alert ('エラーです: ' + message);
     }
    

       }
    ```

NCMBFileを利用してsave()メソッドを実行すると、ファイルを非同期にてアップロードします。
アップロードが成功したら、getFileを利用してファイルのダウンロードを行います。
imgタグ"showImage"のドキュメントオブジェクトをfetchImgSource()に渡し、ダウンロードしたファイルの中身を表示させます。

Usage

サンプルコードをカスタマイズすることで、様々な機能を実装できます!
データ保存・データ検索・会員管理・プッシュ通知などの機能を実装したい場合には、
以下のドキュメントもご参考ください。

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

License

  • MITライセンス
  • NIFTY Cloud mobile backendのJavascript SDKのライセンス