PhoneGap中文网

 找回密码
 立即注册
查看: 32110|回复: 5
打印 上一主题 下一主题

PhoneGap 解析和上传文件

[复制链接]

493

主题

2035

帖子

6894

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
6894
跳转到指定楼层
楼主
发表于 2013-7-29 13:06:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

几天后我如何解析的JavaScript API现在可以很容易地通过他们的SDK文件上传发布。内置的演示中,我是非常快速和简单,而使用phonegap的,这不是一个很好的例子的技术一起。PhoneGap的解析日(显然,影片将很快发布,我会分享,当他们)在我发言之前,我掀起了一个稍微更好的例子。让我们来看看。

(对不起)我的例子是应用程序的注意的另一个例子。然而,这一次,我已经添加了附加图片的能力的一个音符。主屏幕是您当前的票据上市,按日期排序。

点击加号的形式让你写一个新的笔记。

在这一点上,你可以选择拍摄照片。现在 - 我的iOS模拟器测试目的,我设置源到本地文件系统。在一个真实世界的应用程序,你会问,相机本身(或允许用户选择),但我想快速和肮脏的东西。

一旦你单击“保存”,然后创建一个新的注释对象解析。的代码,以确定是否已经拍摄了一张照片或不和,如果你有了,它将会为你处理上传。现在让我们看一下代码。

第一故乡-页。我使用jQuery Mobile的应用程序并放在“页”核心的index.html。由于似乎有一些混乱,让我绝对清楚。jQuery移动并没有让你使用一个HTML页面。期间。这一点,我有一个小的应用程序(2页)在类似的情况下,那么它是有道理的,我将它们包含在一个HTML文件。这是个人的选择,没有什么jQuery Mobile的强迫我做100%。

  1. <! DOCTYPE html >
  2. <    html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6. <title></title>
  7. <meta name = "format-detection" content = "telephone=no"/>
  8. <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width">
  9. <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
  10. <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
  11. <script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
  12. <script type="text/javascript" src="cordova.js"></script>
  13. <script src="js/parse-1.2.8.min.js"></script>
  14. <script src="js/app.js"></script>
  15. <style>
  16. div[data-role=content] img {
  17. max-width: 200px;
  18. }
  19. </style>
  20. </head>
  21. <body>

  22. <div data-role="page" id="home">

  23. <div data-role="header" data-position="fixed">
  24. <a href="#addNote" data-icon="plus" data-iconpos="notext" class="ui-btn-right">Add</a>
  25. <h1>Notebook</h1>
  26. </div>

  27. <div data-role="content">
  28. </div>


  29. </div>

  30. <div data-role="page" id="addNote">

  31. <div data-role="header">
  32. <a href="#home" data-icon="home" data-iconpos="notext">Home</a>
  33. <h1>Notebook</h1>
  34. </div>

  35. <div data-role="content">
  36. <h2>Add Note</h2>
  37. <textarea id="noteText"></textarea>
  38. <button id="takePicBtn">Add Pic</button>
  39. <button id="saveNoteBtn">Save</button>
  40. </div>

  41. </div>

  42. </body>
  43. </html>
复制代码
这里的HTML是很空的,因为几乎所有的内容是动态的。现在,让我们来看看在app.js.

  1. var parseAPPID = "supersecret";
  2. var parseJSID = "mybankpinis1234";

  3. //Initialize Parse
  4. Parse.initialize(parseAPPID,parseJSID);

  5. var NoteOb = Parse.Object.extend("Note");

  6. $(document).on("pageshow", "#home", function(e, ui) {
  7. $.mobile.loading("show");

  8. var query = new Parse.Query(NoteOb);
  9. query.limit(10);
  10. query.descending("createdAt");

  11. query.find({
  12. success:function(results) {
  13. $.mobile.loading("hide");
  14. var s = "";
  15. for(var i=0; i<results.length; i++) {
  16. //Lame - should be using a template
  17. s += "<p>";
  18. s += "<h3>Note " + results[i].createdAt + "</h3>";
  19. s += results[i].get("text");
  20. var pic = results[i].get("picture");
  21. if(pic) {
  22. s += "<br/><img src='" + pic.url() + "'>";
  23. }
  24. s += "</p>";
  25. }
  26. $("#home div[data-role=content]").html(s);
  27. },error:function(e) {
  28. $.mobile.loading("hide");

  29. }
  30. });
  31. });

  32. $(document).on("pageshow", "#addNote", function(e, ui) {

  33. var imagedata = "";

  34. $("#saveNoteBtn").on("touchend", function(e) {
  35. e.preventDefault();
  36. $(this).attr("disabled","disabled").button("refresh");

  37. var noteText = $("#noteText").val();
  38. if(noteText == '') return;

  39. /*
  40. A bit complex - we have to handle an optional pic save
  41. */
  42. if(imagedata != "") {
  43. var parseFile = new Parse.File("mypic.jpg", {base64:imagedata});
  44. console.log(parseFile);
  45. parseFile.save().then(function() {
  46. var note = new NoteOb();
  47. note.set("text",noteText);
  48. note.set("picture",parseFile);
  49. note.save(null, {
  50. success:function(ob) {
  51. $.mobile.changePage("#home");
  52. }, error:function(e) {
  53. console.log("Oh crap", e);
  54. }
  55. });
  56. cleanUp();
  57. }, function(error) {
  58. console.log("Error");
  59. console.log(error);
  60. });

  61. } else {
  62. var note = new NoteOb();
  63. note.set("text",noteText);
  64. note.save(null, {
  65. success:function(ob) {
  66. $.mobile.changePage("#home");
  67. }, error:function(e) {
  68. console.log("Oh crap", e);
  69. }
  70. });
  71. cleanUp();

  72. }
  73. });

  74. $("#takePicBtn").on("click", function(e) {
  75. e.preventDefault();
  76. navigator.camera.getPicture(gotPic, failHandler,
  77. {quality:50, destinationType:navigator.camera.DestinationType.DATA_URL,
  78. sourceType:navigator.camera.PictureSourceType.PHOTOLIBRARY});
  79. });
  80. function gotPic(data) {
  81. console.log('got here');
  82. imagedata = data;
  83. $("#takePicBtn").text("Picture Taken!").button("refresh");
  84. }
  85. function failHandler(e) {
  86. alert("ErrorFromC");
  87. alert(e);
  88. console.log(e.toString());
  89. }

  90. function cleanUp() {
  91. imagedata = "";
  92. $("#saveNoteBtn").removeAttr("disabled").button("refresh");
  93. $("#noteText").val("");
  94. $("#takePicBtn").text("Add Pic").button("refresh");
  95. }

  96. });
复制代码

先看一看#家pageshow事件。这是我们得到的数据解析。这是通过一个简单的查询对象创建的订单。我限制数到10,如果我想可以添加分页。

的addNote逻辑是一个比较复杂的。保存解析数据是异步的,所以如果我们需要存储的文件有两个,而不是一个,异步调用。因此,大IF块来检查,如果我们已经有了选择现有的图像。说句实话,这可能是做了一些,也许更好。例如,创立初期注对象可以肯定IF子句,以及我行的text属性设置。但总的来说,我认为你的想法。


本文来自
http://www.raymondcamden.com/index.cfm/2013/7/23/Better-example-of-PhoneGap-Parse-and-uploading-files


回复

使用道具 举报

0

主题

19

帖子

53

积分

注册会员

Rank: 2

积分
53
沙发
发表于 2015-5-1 23:31:56 | 只看该作者
人不错,学习学习 感觉phonegap+html越来越火了。
回复 支持 反对

使用道具 举报

0

主题

17

帖子

52

积分

注册会员

Rank: 2

积分
52
板凳
发表于 2015-5-2 04:23:39 | 只看该作者
好东西啊,谢谢分享 感谢phonegap中文网
回复 支持 反对

使用道具 举报

0

主题

18

帖子

60

积分

注册会员

Rank: 2

积分
60
地板
发表于 2015-5-2 07:13:41 | 只看该作者
非常好 感谢 开始学习html5 app开发了
回复 支持 反对

使用道具 举报

0

主题

22

帖子

53

积分

注册会员

Rank: 2

积分
53
5#
发表于 2015-5-2 04:08:32 | 只看该作者
未来属于html5 phonegap 微信 wap全部搞定
回复 支持 反对

使用道具 举报

0

主题

17

帖子

52

积分

注册会员

Rank: 2

积分
52
6#
发表于 2015-5-2 10:34:23 | 只看该作者
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

ionic4视频教程

Archiver|手机版|小黑屋| PhoneGap中文网 ( 京ICP备13027796号-1 )  

GMT+8, 2024-4-20 20:23 , Processed in 0.053834 second(s), 31 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表