일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- WebLogic
- Spring
- 가우스
- Android
- sencha touch
- appspresso
- jQuery
- 전자정부프레임워크
- Struts
- JDOM
- oracle
- phonegap
- dock
- swingx
- JSON
- Eclipse
- Ajax
- iBATIS
- ibsheet
- PHP
- Google Map
- node.js
- 선택적조인
- PLSQL
- tomcat
- GPS
- MFC
- MySQL
- rowspan
- jsr 296
Archives
- Today
- Total
Where The Streets Have No Name
phonegap 1.0.0에서 plug-in개발 본문
참고 : http://kgriff.posterous.com/phonegap-10-android-plugin-updates
http://kgriff.posterous.com/building-a-phonegap-plugin-for-android
/res/xml/plugins.xml
<?xml version="1.0" encoding="utf-8"?>
<plugins>
<plugin name="App" value="com.phonegap.App"/>
<plugin name="Geolocation" value="com.phonegap.GeoBroker"/>
<plugin name="Device" value="com.phonegap.Device"/>
<plugin name="Accelerometer" value="com.phonegap.AccelListener"/>
<plugin name="Compass" value="com.phonegap.CompassListener"/>
<plugin name="Media" value="com.phonegap.AudioHandler"/>
<plugin name="Camera" value="com.phonegap.CameraLauncher"/>
<plugin name="Contacts" value="com.phonegap.ContactManager"/>
<plugin name="Crypto" value="com.phonegap.CryptoHandler"/>
<plugin name="File" value="com.phonegap.FileUtils"/>
<plugin name="Network Status" value="com.phonegap.NetworkManager"/>
<plugin name="Notification" value="com.phonegap.Notification"/>
<plugin name="Storage" value="com.phonegap.Storage"/>
<plugin name="Temperature" value="com.phonegap.TempListener"/>
<plugin name="FileTransfer" value="com.phonegap.FileTransfer"/>
<plugin name="Capture" value="com.phonegap.Capture"/>
<plugin name="HelloWorld" value="net.nnn.phonegapdemo.HelloWorld"/>
<plugin name="Toasty" value="net.nnn.phonegapdemo.ToastPlugin"/>
</plugins>
package net.nnn.phonegapdemo;
import org.json.JSONArray;
import org.json.JSONException;
import android.util.Log;
import android.widget.Toast;
import com.phonegap.api.Plugin;
import com.phonegap.api.PluginResult;
import com.phonegap.api.PluginResult.Status;
public class ToastPlugin extends Plugin {
private static final String TAG = "ToastPlugin";
private static final String LONG_TOAST_ACTION = "show_long";
private static final int TOAST_MESSAGE_INDEX = 0;
@Override
public PluginResult execute(String action, JSONArray data, String callinglbackId) {
String toastMessage;
try {
toastMessage = data.getString(TOAST_MESSAGE_INDEX);
} catch (JSONException e) {
Log.e(TAG, "Required parameter 'Toast Message' missing");
return new PluginResult(Status.ERROR);
}
if (action.equals(LONG_TOAST_ACTION)) {
ctx.runOnUiThread(new RunnableToast(toastMessage, Toast.LENGTH_LONG));
} else {
ctx.runOnUiThread(new RunnableToast(toastMessage, Toast.LENGTH_SHORT));
}
return new PluginResult(Status.OK);
}
class RunnableToast implements Runnable {
private String message;
private int length;
public RunnableToast(String message, int length) {
this.message = message;
this.length = length;
}
@Override
public void run() {
Toast.makeText(ctx, message, length).show();
}
}
}
var Toasty = function() {
};
Toasty.prototype.showLong = function(message, win, fail) {
PhoneGap.exec(win, fail, "Toasty", "show_long", [message]);
};
Toasty.prototype.showShort = function(message, win, fail) {
PhoneGap.exec(win, fail, "Toasty", "show_short", [message]);
};
navigator.tp = new Toasty();
<!DOCTYPE HTML>
<html>
<head>
<title>PhoneGap</title>
<script type="text/javascript" charset="utf-8" src="phonegap-1.0.0.js"></script>
<script type="text/javascript" charset="utf-8" src="hello.js"></script>
<script type="text/javascript" charset="utf-8" src="phonegap-toast.js"></script>
<script type="text/javascript" charset="utf-8">
var ready = function() {
var win = function(d) {
console.log('win callback fired with: ' + d);
}
var fail = function(d) {
console.log('fail callback fired with: ' + d);
}
hello('brian', win);
hello(null, win, fail);
navigator.tp.showLong('bar');
}
document.addEventListener("deviceready", ready, false);
</script>
</head>
<body>
<h1>Hello World</h1>
</body>
</html>