<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                [TOC] ## 概況 ### 背景 這個項目的起源是我想錄入我的書架上的書籍——當時,大概有近四百本左右。由于大部分的手機軟件都是收費的,或封閉的,因此我便想著自己寫一個app來完成書籍的錄入。 ### ShowCase 最后的效果如下圖所示: ![](https://box.kancloud.cn/2016-05-18_573c1da908e5b.jpg) Bookshelf 代碼見:?[https://github.com/phodal/bookshelf/](https://github.com/phodal/bookshelf/) ### Ionic + Zxing 所需要的移動框架還是Ionic,用于掃描條形碼的庫是ZXing。 ## 步驟 開始之前,我們需要先安裝Ionic,并且使用它來創建一個APP。然后我們還需要添加對應的二維碼掃描庫,代碼如下所示: ~~~ phonegap plugin add phonegap-plugin-barcodescanner ~~~ 接著我們就可以開始制作我們的APP了。 ### Step 1: ZXing掃描與Douban API 我們需要在我們的模板里,添加一個ICON或者按鈕來觸發程序調用相應的函數: ~~~ <i class="icon icon-right ion-qr-scanner" ng-click="scan()"></i> ~~~ 在我們的函數里,我們只需要調用cordovaBarcodeScanner的scan方法就可以獲取到二維碼的值。再用$http.get去獲取豆瓣API的相應的結果,并且將這個結果存儲到數據庫中。代碼如下所示: ~~~ $scope.scan = function () { $cordovaBarcodeScanner .scan() .then(function (barcodeData) { $scope.info = barcodeData.text; $http.get("https://api.douban.com/v2/book/isbn/" + barcodeData.text).success(function (data) { $scope.detail = data; saveToDatabase(data, barcodeData); }); }, function (error) { alert(error); }); } ~~~ 隨后,我們就可以創建我們的代碼來保存數據到數據庫中。 ### Step 2: 存儲數據庫 開始之前,我們需要添加Cordova的SQLite插件: ~~~ cordova plugin add https://github.com/litehelpers/Cordova-sqlite-storage.git ~~~ 在系統初始化的時候,創建對應的數據庫及其表。 ~~~ if(window.cordova) { //$cordovaSQLite.deleteDB("my.db"); db = $cordovaSQLite.openDB("my.db"); } else { db = window.openDatabase("my.db", "1.0", "bookshelf", -1); } $cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS bookshelf (id integer primary key, title text, image text, publisher text, author text, isbn text, summary text)"); ~~~ 接著,我們就可以上一步獲取的數據取出相應的字段,調用bookshelfDB服務將其存儲到數據庫中。 ~~~ function saveToDatabase(data, barcodeData) { bookshelfDB.add({ title: data.title, image: data.image, publisher: data.publisher, author: data.author, summary: data.summary, isbn: barcodeData.text }); } ~~~ 下面就是我們的bookshelfDB服務,我們實現了get、add、remove、update,即CRUD。 ~~~ .factory('bookshelfDB', function($cordovaSQLite, DBA) { var self = this; self.all = function() { return DBA.query("SELECT id, title, image, publisher, author, isbn, summary FROM bookshelf") .then(function(result){ return DBA.getAll(result); }); }; self.get = function(memberId) { var parameters = [memberId]; return DBA.query("SELECT id, title, image, publisher, author, isbn, summary FROM bookshelf WHERE id = (?)", parameters) .then(function(result) { return DBA.getById(result); }); }; self.add = function(member) { var parameters = [member.id, member.title, member.image, member.publisher, member.author, member.isbn, member.summary]; return DBA.query("INSERT INTO bookshelf (id, title, image, publisher, author, isbn, summary) VALUES (?,?,?,?,?,?,?)", parameters); }; self.remove = function(member) { var parameters = [member.id]; return DBA.query("DELETE FROM bookshelf WHERE id = (?)", parameters); }; self.update = function(origMember, editMember) { var parameters = [editMember.id, editMember.title, origMember.id]; return DBA.query("UPDATE bookshelf SET id = (?), title = (?) WHERE id = (?)", parameters); }; return self; }) ~~~ ### 練習建議
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看