рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдореЛрдмрд╛рдЗрд▓ рдРрдк: рдмрдЧ рдпрд╛ рд╕рдлрд▓рддрд╛ред рдкреНрд░рдпрд╛рд╕ рдирдВрдмрд░ 1

рдореИрдВ рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдХреЗ рд▓рд┐рдП рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рд╕рдкрдиреЗ рдХреЛ рд╕рд╛рдХрд╛рд░ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реВрдВ: рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рдмрд╛рд░ рд▓рд┐рдЦрд╛ рдерд╛ - рдпрд╣ рд╣рд░ рдЬрдЧрд╣ рдФрд░ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рдореБрдЭреЗ рдПрдХ рдиреЙрдЯ-рд╕реЛ-рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдорд┐рд▓рд╛, рдмрд▓реНрдХрд┐ рдПрдХ рдореЛрдмрд╛рдЗрд▓ рд╕рд╛рдЗрдЯ, рдХреНрдпреЛрдВрдХрд┐ рдмрд┐рдирд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдХрд╛рдо рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдореИрдВ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдФрд░ рд╕рднреА (рд▓рдЧрднрдЧ) рдпрд╣ рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЙрдирдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред



рдЗрд╕рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рдореЛрдмрд╛рдЗрд▓ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдХреЗрд╡рд▓ рдХреБрдЫ рдорд╛рдЙрд╕ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реБрдП рдХрдИ рдореЛрдмрд╛рдЗрд▓ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рддрд╣рдд рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред



рдЫрд╡рд┐








рдЫреЛрдЯреЗ рдиреЛрдЯ: рдирдИ рддрдХрдиреАрдХ рдХреЗ рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП рдХрд╡рд░ рд╕рд╛рдордЧреНрд░реА рдХреЛ рдордЬрдмреВрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрдЦ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдореЗрдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрднрд╡ рдХреА рдкреВрд░реА рдХрдореА рдХреЗ рдХрд╛рд░рдг, рдореИрдВ рд╕рдВрднрд╛рд╡рд┐рдд рдЦрд╛рдорд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рдорд╛рдлреА рдорд╛рдВрдЧрддрд╛ рд╣реВрдВред





рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░



рд╣рдо рдХреБрдЫ рд╕рд░рд▓ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ:





рд╣рдо рд╕рд░реНрд╡рд░ рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕рд╣реЗрдЬреЗрдВрдЧреЗред

рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдПрдХ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди .net MVC рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдУрдбрдЯрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИред рдЗрд╕ рдЖрд▓реЗрдЦ рдореЗрдВ, рдореБрдЭреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рджрд┐рдЦрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕рд░реНрд╡рд░ рдХреЛ рдХреЗрд╡рд▓ рдУрдбрдЯрд╛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд╛рд░реНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдлреЛрдирдЧреИрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ: рдлреЛрдирдЬреЗрдПрд╕ рдФрд░ рдмреНрд░реАрдЬрдЬ ред



рддреЛ, рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ ...



рддреНрд╡рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде PhoneJS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ:



рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИред Index.html рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, BreezeJS рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝реЗрдВред



рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ



рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕реНрд╡рдпрдВ index.js рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдиреЗрд╡рд┐рдЧреЗрд╢рди рдФрд░ рдЕрдиреНрдп рд╕реЗрд╡рд╛ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред PhoneJS рд╣рдореЗрдВ рдХрдИ рд▓реЗрдЖрдЙрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рд╕реНрд▓рд╛рдЗрдбрдЖрдЙрдЯ рдЪреБрдирд╛ред рддреЛ рдЪрд▓реЛ рдЖрд╡реЗрджрди рдмрдирд╛рдПрдБ:

$(function () { app = ms.app = new DevExpress.framework.html.HtmlApplication(APP_SETTINGS); app.router.register(":view/:item", { view: "Home", item: undefined }); ms.app.viewShown.add(onViewShown); ms.app.navigationManager.navigating.add(onNavigate); startApp(!ms.dataservice.initUserData()); setTimeout(function () { document.addEventListener("deviceready", onDeviceReady, false); console.log("delay"); if (device.platform == "tizen") { document.addEventListener("tizenhwkey", function (e) { if (e.keyName === "back") onBackButton(); }); } }, 1000); });
      
      







APP_SETTINGS - рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдиреЗрд╡рд┐рдЧреЗрд╢рди рдФрд░ рд▓реЗрдЖрдЙрдЯ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
 APP_SETTINGS = { namespace: ms, navigationType: "slideout", navigation: [ { "id": "Home", "title": "Home", "action": "#Home", "icon": "home" }, { "id": "Settings", "title": "Settings", "action": "#Settings", "icon": "card" }, { "id": "About", "title": "About", "action": "#about", "icon": "info" } ] };
      
      





рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ "рд░реВрдЯрд┐рдВрдЧ" рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рджреГрд╢реНрдп рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рд╣рдо рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ ms.dataservice.initUserData () рдлрд╝рдВрдХреНрд╢рди (рд╣рдо рдмрд╛рдж рдореЗрдВ рдереЛрдбрд╝рд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдиреАрдп рднрдВрдбрд╛рд░рдг рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбреЗрдЯрд╛ рд╣реИред рдпрджрд┐ рдбреЗрдЯрд╛ рдЙрдкрд▓рдмреНрдз рд╣реИ рддреЛ рдлрд╝рдВрдХреНрд╢рди рд╕рд╣реА рд╣реИред рдпрд╛рдиреА рдпрджрд┐ рд╣рдо рдкрд╣рд▓реА рдмрд╛рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯрд┐рдВрдЧ рджреГрд╢реНрдп рдкрд░ рдЬрд╛рдПрдВред

  function startApp(needToSynchronize) { if (needToSynchronize) ms.app.navigate("Settings/1"); else ms.app.navigate(); }
      
      





рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдереЛрдбрд╝реА рджреЗрд░реА рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реВрдВ - рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдореИрдВ рдПрдХ рдЫрдк рд╕реНрдХреНрд░реАрди рдмрдирд╛рдКрдВрдЧрд╛ред

рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ



рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрд▓рдЧ dataservice.js рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:

рдЫрд┐рдкрд╛ рд╣реБрдЖ рдкрд╛рда
 MobileSales.dataservice =function ($, DX, app, undefined) { var DATA_VERSION_KEY = "mobilesales-version", DATA_KEY = "mobilesales-data", logger = app.logger; serviceName = "http://mobsalessrv.azurewebsites.net/odata/"; breeze.config.initializeAdapterInstances({ dataService: "OData" }); var manager = new breeze.EntityManager(serviceName); var store = manager.metadataStore; var queries = { Routes: { name: "Routes", query: breeze.EntityQuery.from("Routes").orderBy("RouteID"), }, Customers: { name: "Customers", query: breeze.EntityQuery.from("Customers").orderBy("CustomerName"), }, ProductTypes: { name: "ProductTypes", query: breeze.EntityQuery.from("ProductTypes").orderBy("ProductTypeName"), }, Products: { name: "Products", query: breeze.EntityQuery.from("Products").orderBy("ProductName"), }, Orders: { name: "Orders", query: breeze.EntityQuery.from("Orders").orderBy("Date"), }, OrderDetails: { name: "OrderDetails", query: breeze.EntityQuery.from("OrderDetails"), }, }; function initUserData() { var dataFromStorage = localStorage.getItem(DATA_KEY); if (dataFromStorage) { manager.importEntities(dataFromStorage); return true; } else { return false; } } function loadData(query) { return manager.executeQuery(query); } function getRoutes(){ return manager.executeQueryLocally(queries.Routes.query); }; function getCustomers() { return manager.executeQueryLocally(queries.Customers.query); }; function getProduct(productID) { var query = queries.Products.query.where("ProductID", "==", productID); return manager.executeQueryLocally(query)[0]; }; function getOrders(customerID) { var query = queries.Orders.query; if (typeof customerID != "undefined" && customerID > 0) query= query.where("CustomerID", "==", customerID); return manager.executeQueryLocally(query); }; function getOrderDetails(orderID) { var query = queries.OrderDetails.query; if (typeof orderID != "undefined" && orderID > 0) query = query.where("OrderID", "==", orderID); var result = manager.executeQueryLocally(query); result.forEach(function (item) { item.ProductName = getProduct(item.ProductID()).ProductName; }); return result; }; function saveDataLocally() { var exportData = manager.exportEntities(); localStorage.setItem(DATA_KEY, exportData); } var dataservice = { manager: manager, metadataStore: manager.metadataStore, initUserData: initUserData, queries: queries, loadData: loadData, getRoutes: getRoutes, getCustomers: getCustomers, saveDataLocally: saveDataLocally, getOrders: getOrders, getOrderDetails: getOrderDetails, }; return dataservice; }(jQuery, DevExpress, MobileSales);
      
      





рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдкрдврд╝реЗ рдЧрдП рд╣рд╡рд╛ рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░реЗрдВред рдореИрдВ рдХреЗрд╡рд▓ рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдиреНрджреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛ред рдХреНрд╡реЗрд░реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ, рдореИрдВ рдЗрд╕реЗ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЖрдо рддреМрд░ рдкрд░ рдпрд╣ рд╕реВрдЪреА рд╕рд░реНрд╡рд░ рд╕реЗ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╣рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рдЧрддрд┐рд╢реАрд▓ рднрд░рдиреЗ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред



рдмреНрд░реАрдЬрд╝ рдХреЗ рдкрд╛рд╕ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ manager.exportEntities () рдФрд░ manager.importEntities (dataFromStorage) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╕рд╣реЗрдЬрдиреЗ рдФрд░ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рд╢рд╛рдирджрд╛рд░ рдЕрд╡рд╕рд░ рд╣реИред InitUserData рдлрд╝рдВрдХреНрд╢рди DATA_KEY рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдиреАрдп рд╕рдВрдЧреНрд░рд╣рдг рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдкреНрд░рдкрддреНрд░ рдХреЗ рдЕрдиреНрдп рд╕рднреА рдХрд╛рд░реНрдп рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред



рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рднреА рдбреЗрдЯрд╛ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдЕрд▓рдЧ рд╕реЗрдЯрд┐рдВрдЧ рджреГрд╢реНрдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрдЯрди, рдПрдХ рд▓реЛрдбрд┐рдВрдЧ рдкреИрдирд▓ рдФрд░ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ:

 <div data-options="dxView : { name: 'Settings', title: 'Settings' } "> <div data-options="dxContent : { targetPlaceholder: 'content' } "> <div class="actions"> <div data-bind="dxButton: { text: 'Synchronize', clickAction: synchData }"></div> </div> <div data-bind="dxLoadPanel: { message: message, visible: loading().length>0 }"></div> <div data-bind="dxList: { items: entityList }"> <div data-options="dxTemplate : { name: 'item' }"> <div data-bind="text: $data.name" class="entity-name"> </div> <div data-bind="text: $data.status" class="entity-status"></div> </div> </div> </div> </div>
      
      





рдореИрдВ рдпрд╣ рдмрддрд╛рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднреВрд▓ рдЧрдпрд╛ рдХрд┐ рд╣рд╡рд╛ рдФрд░ рдлреЛрдирдЬ рджреЛрдиреЛрдВ рдЕрджреНрднреБрдд рдиреЙрдХрдЖрдЙрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рд░рдЦрдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред

settings.js
 MobileSales.Settings = function (params) { var app = MobileSales, needToSynchonize = params.item==="1", self = this; var vm = { entityList: ko.observableArray([]), loading: ko.observableArray(), viewShowing: function () { if (needToSynchonize) getEntities(); }, viewShown: function () { $(".dx-active-view .dx-scrollable").data("dxScrollView").scrollTo(0); }, synchData: getEntities, }; vm.message = ko.computed(function () { return "Loading ...(left:" + this.loading().length + ")" }, vm); function getEntities() { var mapped = $.map(app.dataservice.queries, function (item) { item.status = ko.observable("Loading"); vm.loading.push(true); app.dataservice.loadData(item.query).then(function (data) { app.logger.log("Loaded data: " + item.query.resourceName); item.status("Succeded"); app.logger.log(app.dataservice.getRoutes()); vm.loading.pop(); if (vm.loading().length === 0) app.dataservice.saveDataLocally(); }).fail(function (error) { item.status("Error"); app.logger.error("Error Loading data"); app.logger.log(error); vm.loading.pop(); }); return item; }); vm.entityList(mapped); }; return vm; };
      
      





рд╣рдо рдЗрдирдкреБрдЯ рдкрд░ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдордЬрдмреВрд░ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░реЗрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдмреНрд░реАрдЬрд╝ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рдирд┐рдХрд╛рдп рдХреЛ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╕рдорд╛рдзрд╛рди рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдЕрд╡рд▓реЛрдХрди рдпреЛрдЧреНрдп рдПрдЕрд░ рд▓реЛрдбрд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред

рдЪрд▓реЛ getEntities рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЗ рд╣реИрдВ: рд╣рдо dataservice.queries рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрд╛рддреЗ рд╣реИрдВ , рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ vm.loading.push рд╕рд░рдгреА (рд╕рддреНрдп) рдХреЗ рд▓рд┐рдП рдХреЛрдИ рднреА рдорд╛рди рдЬреЛрдбрд╝рддреЗ рд╣реИрдВред рд╕рдлрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдпрд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдкреАрдврд╝реА рдХреЗ рд▓рд┐рдП рд╣реИрдВрдбрд▓рд░ рдореЗрдВ, рд╣рдо рддрддреНрд╡ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд▓реЛрдбрд┐рдВрдЧ рд╕рд░рдгреА рдХреЛ рдХрдо рдХрд░рддреЗ рд╣реИрдВред рдирддреАрдЬрддрди, рд╣рдо рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд╕рд╛рде рдХрдИ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд▓реЛрдбрд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рд╕реЗ рдпрд╣ рд╕рдм рджрд┐рдЦрддрд╛ рд╣реИред

рдЫрд╡рд┐






рдмрд╛рдХреА рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрд╣реБрдд рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдмрд╕ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдХреЛ рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рд░реБрдЪрд┐ рд╣реИ, рддреЛ рд╕реНрд░реЛрдд рдХреЛрдб рджреЗрдЦреЗрдВ ред

рд╣реЛрдо рджреГрд╢реНрдп рдореЗрдВ, рдЖрдк рдорд╛рд░реНрдЧ рдХреЗ рдорд╛рд░реНрдЧ рдкрд░ рдПрдХ рдЦреБрджрд░рд╛ рдмрд┐рдВрджреБ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рдЗрд╕ рдмрд┐рдВрджреБ рдХреЗ рдЖрджреЗрд╢ рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

рдЫрд╡рд┐








рдпрд╣ рдХреБрдЫ рд╣реА рдХреНрд▓рд┐рдХ рдореЗрдВ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ:

тЧП http://build.phonegap.com рдкрд░ рдЬрд╛рдПрдВред

тЧП GitHub рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдЧрд┐рди рдХрд░реЗрдВред

тЧП рдЗрдЪреНрдЫрд┐рдд рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рдПрдХ рдирдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреЛрдбрд╝реЗрдВ

тЧП рдЬрд╛рджреВ рдмрдЯрди рджрдмрд╛рдПрдВ "рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░"

тЧП рдФрд░ рд╣рдо 5 рдореЗрдВ рд╕реЗ 5 рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдкрд░ рдЖрд╡реЗрджрди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ (рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдИрдУрдПрд╕ рдкрд░ рдЪрд╛рдмреА рдирд╣реАрдВ рд╣реИ):

рдЫрд╡рд┐






рдЫреЛрдЯреА рдмрд╛рд░реАрдХрд┐рдпрд╛рдБ: рдКрдкрд░ рдХреА рддрд╕реНрд╡реАрд░ PhoneGap рд╕рдВрд╕реНрдХрд░рдг 2.9 рдкрд░ рд▓реА рдЧрдИ рдереА, рд╡реИрд╕реЗ, WP рдпрд╣рд╛рдБ рд╕рдВрд╕реНрдХрд░рдг 7 рд╣реИред рд╕рдВрд╕реНрдХрд░рдг 3. рдЪреБрдирдиреЗ рдкрд░ + рд╣рдореЗрдВ рдпрд╣ рд╕рдВрджреЗрд╢ рдорд┐рд▓рддрд╛ рд╣реИ : рдмреНрд▓реИрдХрдмреЗрд░реА, рд╕рд┐рдореНрдмрд┐рдпрди, рдФрд░ рд╡реЗрдмрдУрдПрд╕ рдЕрдм PhoneGap 3 рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВ , рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП WP8 рдХрд╛ рд╕рдорд░реНрдерди рд╣реИред ред



рдпрд╣ рдереЛрдбрд╝рд╛ рдЯрд╛рд░ (рд╢рд╛рдпрдж рдмрд╣реБрдд рдХреБрдЫ) рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИ: рдкреНрд░рджрд░реНрд╢рдиред рдкреБрд░рд╛рдиреЗ рдпрд╛ рдХрдордЬреЛрд░ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИ - рдмреНрд░реЗрдХ рдмрд┐рд▓рдХреБрд▓ рд╕рд╣реА рд╣реИред рд▓реЗрдХрд┐рди рдЬреИрд╕реЗ рд╣реА рдореИрдВрдиреЗ рдЙрдкрдХрд░рдг рдХреЛ рдХрдо рдпрд╛ рдЬреНрдпрд╛рджрд╛ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд▓рд┐рдпрд╛, рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ, рдпрд╣ рдПрдХ рдореВрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рддреБрд▓рдирд╛ рдХрд░рдирд╛ рднреА рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ - рдпреЗ рджреЛ рдЕрд▓рдЧ рдЪреАрдЬреЗрдВ рд╣реИрдВред рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг (рдареАрдХ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ HTML5 рдХреЗ рдЕрд░реНрде рдореЗрдВ) рдХрд╛ рднрд╡рд┐рд╖реНрдп рд╣реИ, рдФрд░ рдПрдХ рдЖрд▓рд╛ рдорд┐рд▓реЗрдЧрд╛ред



рдЖрд╡реЗрджрди рд▓рд┐рдВрдХ:



тЧП рд╕реВрддреНрд░ https://github.com/gfhfk/MobSales

тЧП рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг (рдореИрдВрдиреЗ рдХреНрд░реЛрдо рдФрд░ IE11 рдХреА рдХреЛрд╢рд┐рд╢ рдХреА) http://mobsales.azurewebooks.net/ ред

тЧП рд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреМрди рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ: http://mobsalessrv.azurewebooks.net/odata/

тЧП рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реА:

рд╕рдВрд╕реНрдХрд░рдг 3.4 https://build.phonegap.com/apps/727149

рдЫрд╡рд┐






рдХреМрди рдкрд░рд╡рд╛рд╣ рдХрд░рддрд╛ рд╣реИ рд╕рдВрд╕реНрдХрд░рдг 2.9 https://build.phonegap.com/apps/733422/

рдЫрд╡рд┐








рдиреЛрдЯ 1 : рд╡рд┐рдВрдбреЛрдЬ рдлреЛрди рдкрд░ рдХреНрдпреВрдЖрд░ рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реЛрддреА рд╣реИред рдЖрдкрдХреЛ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рд▓рд┐рдВрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ, xap рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░рд┐рдирд┐рдпреЛрдЬрди рдЙрдкрдХрд░рдг рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╢рд╛рдпрдж рдлреЛрдирдЧреИрдк рдмрд┐рд▓реНрдб рдЧрдбрд╝рдмрдбрд╝ред

рдиреЛрдЯ 2 : рдХрднреА-рдХрднреА, рдЦрд╛рд╕рдХрд░ рдЬрдм рдЖрдк рдЗрд╕реЗ рдкрд╣рд▓реА рдмрд╛рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдЬрдм рдЖрдк рдЗрд╕реЗ рдПрдореБрд▓реЗрдЯрд░ рдкрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ:

рдЫрд╡рд┐








рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╣рд▓ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИ:

1. index.html рдлрд╝рд╛рдЗрд▓ рдХреЛ main.html рдореЗрдВ рдмрджрд▓реЗрдВред

2. рдПрдХ рдирдпрд╛ index.html рдмрдирд╛рдПрдБ рдФрд░ рдЯреБрдХрдбрд╝рд╛ рдЪрд┐рдкрдХрд╛рдПрдБ:

 <!doctype html> <html> <head> <title>tittle</title> <script> window.location='./main.html'; </script> <body> </body> </html>
      
      





3. рд╕рдм рдХреБрдЫ (рдХреЛрдИ рднреА рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдВрд╕реНрдХрд░рдг 2.9 рдХреЗ рд╕рд╛рде, рдпрд╣ рдЕрднреА рднреА рдХреБрдЫ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)ред

рдиреЛрдЯ 3 : WP8 рдПрдореБрд▓реЗрдЯрд░ рдореЗрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкрд╣рд▓реА рдмрд╛рд░ рд▓реЙрдиреНрдЪ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдореБрдЭреЗ рдкрддрд╛ рдирд╣реАрдВ рдХреНрдпреЛрдВред рдореИрдВрдиреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдЗрд╕рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреАред WP8.1 рдореЗрдВ рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рднреА рд╢реБрд░реВ рдирд╣реАрдВ рд╣реБрдЖ (рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЗрд╕рдХрд╛ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛рдпрд╛ рд╣реИ)ред

рдиреЛрдЯ 4: рд╕рд╛рдЗрдЯреЗрдВ рдореБрдлреНрдд рд╡рд┐рдВрдбреЛрдЬ рдПрдЬрд╝реНрдпреЛрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╣реЛрд╕реНрдЯ рдХреА рдЬрд╛рддреА рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╕рдВрд╕рд╛рдзрди рд╕реАрдорд┐рдд рд╣реИрдВред рд╣рдмреНрд░ рдкреНрд░рднрд╛рд╡ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рд╕рд╛рдЗрдЯреЗрдВ рдиреАрдЪреЗ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдлрд┐рд░ рдореБрдЭреЗ рдмрддрд╛рдПрдВ - рдореИрдВ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рднреБрдЧрддрд╛рди рдкрд░ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджреВрдВрдЧрд╛ред

рдореИрдВрдиреЗ рдПрдХ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рд╣реИ, рдореИрдВ рд╣рд░ рдХрд┐рд╕реА рдХреЛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рд╡рд╣ рдЦреБрдж рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗ рдФрд░ рдПрдХ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдХрд╛ рдЙрддреНрддрд░ рджреЗ, рдЬрд┐рд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдореИрдВ рддрдп рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдЖрдЧреЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ:



All Articles