在用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. Mysqldump参数大全

    Mysqldump参数大全(参数来源于mysql5.5.19源码)   参数 参数说明 --all-databases  , -A 导出全部数据库. mysqldump  -uroot -p --al ...

  2. jquery 添加方法 : $.fn.方法名 = function(参数a,b,c){

    $.fn.image_checked = function(self,status,img_body,csrf_token){             $(this).live('click', fu ...

  3. 从问题域出发认识Hadoop生态系统

    近些年来Hadoop生态系统发展迅猛,它本身包含的软件越来越多,同时带动了周边系统的繁荣发展.尤其是在分布式计算这一领域,系统繁多纷杂,时不时冒出一个系统,号称自己比MapReduce或者Hive高效 ...

  4. ViewPager滑动页面的实现方法

    package com.lixu.pagerview; import java.util.ArrayList; import android.app.Activity; import android. ...

  5. 文本信息“welcome to java programming!”

    import javax.swing.JOptionPanepublic class welcome {public static void main(string[] arg){JOptionPan ...

  6. hdu 4627 The Unsolvable Problem

    http://acm.hdu.edu.cn/showproblem.php?pid=4627 分类讨论一下就可以 代码: #include<iostream> #include<cs ...

  7. Elasticsearch内存分配设置详解

    Elasticsearch默认安装后设置的内存是1GB,对于任何一个现实业务来说,这个设置都太小了.如果你正在使用这个默认堆内存配置,你的集群配置可能会很快发生问题. 这里有两种方式修改Elastic ...

  8. 使用ASP.Net WebAPI构建REST服务(四)——参数绑定

    默认绑定方式 WebAPI把参数分成了简单类型和复杂类型: 简单类型主要包括CLR的primitive types,(int.double.bool等),系统内置的几个strcut类型(TimeSpa ...

  9. 近期C++编译问题汇总

    编译c++ 代码中遇到几个问题,汇总一下: 1.编译openssl 遇到问题如图 ,  原因:不支持汇编编译,在perl编译指令中加入: no-asm , 如:perl Configure VC-WI ...

  10. X230 安装win7 sp1

    早上起床发现win10歇菜了,死活启动不了只好重装系统 用稳定版本win7比较靠谱. 去msdn上下载 一个win7系统 win7旗舰版本64位 ed2k://|file|cn_windows_7_u ...