새로운 업데이트는 여기에 있습니다.
…
Android Parse 모듈을 Parse Server를 지원하도록 업데이트 했습니다.
자세한 설명과 리파지터리는 아래 입니다.
(패키징된 모듈은 dist 폴더에 있습니다.)
Titanium에서는 이렇게 쓰시면 편리합니다.
var registerAndroid = function(_callback) {
var ParsePush = require('eu.rebelcorp.parse');
//instllationId
ParsePush.addEventListener('installationId', function(e) {
Alloy.Globals.SettingsM.set('Installation_objectId', e.objectId).save();
afterRegisterDevice(_callback);
});
ParsePush.start();
//푸쉬알림 도착에 대한 반응.
ParsePush.addEventListener('notificationreceive', function(e) {
pushRecieved(e);
});
//푸쉬 알림을 클릭했을 때의 반응
ParsePush.addEventListener('notificationopen', function(e) {
pushRecieved(e, true); //isClick
});
//앱을 켰으니 푸시를 다 지워주자
ParsePush.notificationClear();
};
** SettingsM은 각종 변수를 영구저장하기 위해서 사용하는 properties 아답터의 alloy model입니다.
1개의 좋아요
서버 URL은 tiapp.xml의 property에서 자동으로 가져오나요? ^^
네. Readme에 있는 것처럼 tiapp.xml의 Parse_ServerUrl에서 가져옵니다.
아참, url 끝에 절대 / 를 붙이시면 안됩니다.
아놔…빌드시 too many method…에러 나요…ㅠㅠ
그럼 포함된 모듈의 method를 줄이셔야해요… 안쓰는 모듈을 줄이시고, 특히 ti.map쓰시면 꼭 최신 버전 쓰시구요.
https://github.com/appcelerator-modules/ti.map/tree/master/android/lib
이걸 보시면 ti.map도 google play service가 메쏘드수가 너무 많아서 줄여서 쓰고 있습니다.
저도 Parse Android 모듈 만들면서 Parse라이브러리 중에 필요없는 facebook이나 twiiter쪽 jar는 빼버렸어요.
혹시나하고 남겨놓은 ParseInterceptors-0.0.2.jar도 지워버리세요. (모듈 압축푸시면 lib 폴더에 들어있는걸 지우시면 됩니다.)
bolts-tasks-1.4.0.jar 요놈에서 에러가 나요…전 모듈도 이놈에서 에러가 나서 빼고 해도 문제가 없었는데…
이번엔 지우고 빌드하면 빌드는 되는데…런타임시 버전이 안맞아서 에러가 나네요…어딘가에 저걸 쓰고 있는 넘이 또 있는거 같은데…
소스상에선 뒤져봐도 안보이네요…쩝.
사용하시는 모듈 중에 bolts가 포함된 다른 모듈이 있을거에요. 1.4.0이 최신이니깐, 낮은 버전을 지워버리세요.
프로젝트가 아닌 공용으로 설치된 titanium 모듈에서도 찾아보세요.
아마 ti.facebook에서 사용하고 있을거에요.
https://github.com/appcelerator-modules/ti.facebook/tree/master/android/lib
그리고 ti.facebook을 쓰시면 ti.facebook의 lib안의 facebook bolts.android를 1.4.0으로 교체 하세요.
그런뒤에 parse module의 bolts.tasks를 지우시면 될거에요. bolts.tasks는 bolts.android에서 일부를 패키징한 것입니다.
BoltsFramework:master
← BoltsFramework:grantland.split
opened 11:08PM - 15 Oct 15 UTC
요렇게 분리한 것이죠.
1개의 좋아요
trackAppOpenedInBackground
을 하지 않도록 하는 옵션을 추가하면 좋을 것 같아요.
아쉬운 사람이 우물파도록 일단 답글 달아 놓습니다. (아쉬운 사람이 제가 될 것 같지만.ㅋㅋㅋ)
public static ParseModule getInstance() {
return module;
}
// Methods
@Kroll.method
public void start()
{
setState(STATE_RUNNING);
// App opens analytics
ParseAnalytics.trackAppOpenedInBackground(TiApplication.getAppRootOrCurrentActivity().getIntent());
ParseInstallation.getCurrentInstallation().put("androidId", getAndroidId());
ParseInstallation.getCurrentInstallation().saveInBackground(new SaveCallback() {
public void done(ParseException e) {
if (e != null) {
Log.e(TAG, "Installation initialization failed: " + e.getMessage());
}
// fire event
try {
JSONObject pnData = new JSONObject();
pnData.put("objectId", getObjectId());
1개의 좋아요
trackAppOpenedInBackground를 하지 않는 것과 하는 것의 차이를 잘 모르겠어요?
지금 푸시 오픈 트래킹이 잘 되지 않는 상태인가요?
trackAppOpenedInBackground
을 하면 앱이 실행될때 마다 parse-server로 /events/AppOpened
로 post 날리더라고요.
1개의 좋아요