在用Phonegap开发时,需要进行前后台数据交互,在网上找资料,很多东西让人一头雾水,最后借鉴了下面的博客:

http://blog.sina.com.cn/s/blog_681929ae010177qt.html

才实现了一个简单数据交互

1:定义名称为FilePlugin的 Class文件继承自Plugin;需要实现execute方法

package qj;

import org.json.JSONArray;

import android.webkit.WebSettings.PluginState;

import com.phonegap.api.Plugin;
import com.phonegap.api.PluginResult; public class FilePlugin extends Plugin{//继承 @Override
public PluginResult execute(String action, JSONArray args, String callbackId)
{
PluginResult pr=new PluginResult(PluginResult.Status.OK, "进入");
String ls=action;
String lss=args.toString(); try {
ls = java.net.URLDecoder.decode(ls,"UTF-8");
lss = new String(lss.getBytes("iso-8859-1"),"utf-8");
lss = java.net.URLDecoder.decode(lss,"UTF-8"); if (action.equals("createFile")) {
String filePath = "文件路径!";
pr=new PluginResult(PluginResult.Status.OK,filePath); }
if(action.equals("read")){
pr=new PluginResult(PluginResult.Status.OK, "文件读取"); }
} catch (Exception e) {
return new PluginResult(PluginResult.Status.ERROR,e.getMessage());
}
return pr; } }

2:定义名称为file的js文件,用以实现方法并且注册成为Phonegap的插件。

var FilePlugin = function(){};
FilePlugin.prototype.write = function(fileName, content, successCallback, failureCallback){
return PhoneGap.exec(successCallback, failureCallback, "FilePlugin", "write", [fileName, content]);
}; FilePlugin.prototype.overWrite = function(srcName, destName,successCallback, failureCallback){
return PhoneGap.exec(successCallback, failureCallback, "FilePlugin", "orverwrite", [srcName, destName]);
}; FilePlugin.prototype.read = function(filePath,successCallback, failureCallback){
return PhoneGap.exec(successCallback, failureCallback, "FilePlugin", "read", [filePath]);
}; //注册插件
PhoneGap.addConstructor(function(){
PhoneGap.addPlugin("file", new FilePlugin());
});

3:管理Class文件与Js文件

在xml中的plugins.xml中配置

name="类名称"

value="命名空间"

<plugin name="FilePlugin" value="qj.FilePlugin"/>

4:页面调用

<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
<script type="text/javascript" charset="UTF-8" src="phonegap-1.0.0.js"></script>
<script type="text/javascript" charset="UTF-8" src="file.js"></script>
<script type="text/javascript" charset="UTF-8"> function read(){
window.plugins.file.read("file.txt", success, failure);
var arg= encodeURI(encodeURI("中文"));
arg= "中文";
//FilePlugin.prototype.read(arg, success, failure);
}
function success(r){
alert("success:"+r);
};
function failure(e){
alert("failure:"+e);
};
</script> <button onclick="read()">read Some</button>

Phonegap开发的前后台数据交互的更多相关文章

  1. Django学习笔记(8)——前后台数据交互实战(AJAX)

    这里将自己这段时间学习的关于前后台数据交互的笔记写在这里,这里包含了Django传输数据给JS,AJAX的相关问题,跨域问题,如何解决AJAX的跨域问题等等.比较凌乱,请看到这篇博客的盆友见谅,如果我 ...

  2. Spring MVC 前后台数据交互

    本文是转载文章,感觉比较好,如有侵权,请联系本人,我将及时删除. 原文网址地址:<Spring MVC 前后台数据交互> 1.服务端数据到客户端 (1)返回页面,Controller中方法 ...

  3. 用PHP和Ajax进行前后台数据交互——以用户登录为例

    很多网站中都有用户登录系统,要完成用户的注册和登陆,就一定要用到前后台的数据交互.在这里以简单的用户注册和登陆为例介绍一下前后台交互的大致流程. 首先,我们来做一个简单的登陆界面. 这里为了方便我使用 ...

  4. vue仓库、组件间通信、前后台数据交互、前端储存数据大汇总

    目录 路由重定向 仓库介绍 vuex插件:可以完成任意组件间信息交互(移动端) 前端存储数据大汇总 前后台交互方式(重点) 前后台数据交互 axios插件:完成前后台ajax交互的 同源策略 - 前后 ...

  5. 基于ssh框架的highcharts前后台数据交互实例

    Highcharts 是一个用纯JavaScript编写的一个图表库, 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表,并且免费提供给个人学习.个人网站和非商业用途使用.HighCh ...

  6. easy-table-vue+VueJs、SpringBoot+Mybatis实现MVVM模型前后台数据交互

    该项目分为前端展示部分和后台服务部分. 前端部分 使用的技术是:NodeJs.Webpack.VueJs 使用的组件库是:IVIEW.easy-table-vue 使用的开发工具是:WebStorm ...

  7. Asp.net--Ajax前后台数据交互

    转自:http://www.cnblogs.com/guolebin7/archive/2011/02/22/1961737.html 代码由前后台两部分组成: 前台:(新建一个Default.asp ...

  8. 玩转Web之Json(二)----jquery easy ui + Ajax +Json+SQL实现前后台数据交互

    最近在学Json,在网上也找过一些资料,觉得有点乱,在这里,我以easy ui的登录界面为例来说一下怎样用Json实现前后台的数据交互 使用Json,首先需要导入一些jar包,这些资源可以在网上下载到 ...

  9. vue前后台数据交互vue-resource文档

    地址:https://segmentfault.com/a/1190000007087934 Vue可以构建一个完全不依赖后端服务的应用,同时也可以与服务端进行数据交互来同步界面的动态更新. Vue通 ...

随机推荐

  1. Threading.Tasks.Task多线程 静态全局变量(字典) --只为了记录

    --------------------------------------------------------------后台代码---------------------------------- ...

  2. js中的运算符优先级顺序

    js中运算符优先级从高到底的顺序: 算术操作符 → 比较操作符 → 逻辑操作符 → "="赋值符号

  3. EF Code-First数据迁移的尝试

    Code-First的方式虽然省去了大量的sql代码,但增加了迁移的操作.尝试如下: 1.首先要在“扩展管理器”里搜索并安装NuGet“库程序包管理器”,否则所有命令都不能识别,会报CommandNo ...

  4. Enumeration 接口

    Enumeration是遍历集合元素的一种方法. Enumeration中只有两个方法: 1.hasMoreElements()  测试此枚举是否包含更多的元素. 2.nextElement()  如 ...

  5. mybatis 参数问题

    load方法,往sql语句中传一个参数的那种,似乎parameterType并不是那么重要,不写其实都可以,而且sql语句中的比如username=#{A} 这里面的A可以随便写,只要传过来的是个St ...

  6. 读取properties中的key对应的value

  7. php访问数据库思维导图

  8. 北大ACM题库习题分类与简介(转载)

    在百度文库上找到的,不知是哪位大牛整理的,真的很不错! zz题 目分类 Posted by fishhead at 2007-01-13 12:44:58.0 -------------------- ...

  9. hello world Firmware Library

    其实正点原子有良好的模板工程...user .lab文件 ,obj. 一脸蒙的是库函数的操作方式.... 为了便于管理,该项目文件夹内,我分了以下几个文件夹:"PROJ"存放工程文 ...

  10. (转)mysql各个主要版本之间的差异

    原文:http://blog.csdn.net/z1988316/article/details/8095407   一.各版本的常用命令差异 show innodb status\G mysql-5 ...