First Commit
This commit is contained in:
commit
feb864dc47
170 changed files with 4671 additions and 0 deletions
212
hackatonApp/www/js/factories.js
Normal file
212
hackatonApp/www/js/factories.js
Normal file
|
|
@ -0,0 +1,212 @@
|
|||
angular.module('your_app_name.factories', [])
|
||||
|
||||
.factory('FeedLoader', function ($resource){
|
||||
return $resource('http://ajax.googleapis.com/ajax/services/feed/load', {}, {
|
||||
fetch: { method: 'JSONP', params: {v: '1.0', callback: 'JSON_CALLBACK'} }
|
||||
});
|
||||
})
|
||||
|
||||
|
||||
// Factory for node-pushserver (running locally in this case), if you are using other push notifications server you need to change this
|
||||
.factory('NodePushServer', function ($http){
|
||||
// Configure push notifications server address
|
||||
// - If you are running a local push notifications server you can test this by setting the local IP (on mac run: ipconfig getifaddr en1)
|
||||
var push_server_address = "http://192.168.1.102:8000";
|
||||
|
||||
return {
|
||||
// Stores the device token in a db using node-pushserver
|
||||
// type: Platform type (ios, android etc)
|
||||
storeDeviceToken: function(type, regId) {
|
||||
// Create a random userid to store with it
|
||||
var user = {
|
||||
user: 'user' + Math.floor((Math.random() * 10000000) + 1),
|
||||
type: type,
|
||||
token: regId
|
||||
};
|
||||
console.log("Post token for registered device with data " + JSON.stringify(user));
|
||||
|
||||
$http.post(push_server_address+'/subscribe', JSON.stringify(user))
|
||||
.success(function (data, status) {
|
||||
console.log("Token stored, device is successfully subscribed to receive push notifications.");
|
||||
})
|
||||
.error(function (data, status) {
|
||||
console.log("Error storing device token." + data + " " + status);
|
||||
});
|
||||
},
|
||||
// CURRENTLY NOT USED!
|
||||
// Removes the device token from the db via node-pushserver API unsubscribe (running locally in this case).
|
||||
// If you registered the same device with different userids, *ALL* will be removed. (It's recommended to register each
|
||||
// time the app opens which this currently does. However in many cases you will always receive the same device token as
|
||||
// previously so multiple userids will be created with the same token unless you add code to check).
|
||||
removeDeviceToken: function(token) {
|
||||
var tkn = {"token": token};
|
||||
$http.post(push_server_address+'/unsubscribe', JSON.stringify(tkn))
|
||||
.success(function (data, status) {
|
||||
console.log("Token removed, device is successfully unsubscribed and will not receive push notifications.");
|
||||
})
|
||||
.error(function (data, status) {
|
||||
console.log("Error removing device token." + data + " " + status);
|
||||
});
|
||||
}
|
||||
};
|
||||
})
|
||||
|
||||
|
||||
.factory('AdMob', function ($window){
|
||||
var admob = $window.AdMob;
|
||||
|
||||
if(admob)
|
||||
{
|
||||
// Register AdMob events
|
||||
// new events, with variable to differentiate: adNetwork, adType, adEvent
|
||||
document.addEventListener('onAdFailLoad', function(data){
|
||||
console.log('error: ' + data.error +
|
||||
', reason: ' + data.reason +
|
||||
', adNetwork:' + data.adNetwork +
|
||||
', adType:' + data.adType +
|
||||
', adEvent:' + data.adEvent); // adType: 'banner' or 'interstitial'
|
||||
});
|
||||
document.addEventListener('onAdLoaded', function(data){
|
||||
console.log('onAdLoaded: ' + data);
|
||||
});
|
||||
document.addEventListener('onAdPresent', function(data){
|
||||
console.log('onAdPresent: ' + data);
|
||||
});
|
||||
document.addEventListener('onAdLeaveApp', function(data){
|
||||
console.log('onAdLeaveApp: ' + data);
|
||||
});
|
||||
document.addEventListener('onAdDismiss', function(data){
|
||||
console.log('onAdDismiss: ' + data);
|
||||
});
|
||||
|
||||
var defaultOptions = {
|
||||
// bannerId: admobid.banner,
|
||||
// interstitialId: admobid.interstitial,
|
||||
// adSize: 'SMART_BANNER',
|
||||
// width: integer, // valid when set adSize 'CUSTOM'
|
||||
// height: integer, // valid when set adSize 'CUSTOM'
|
||||
position: admob.AD_POSITION.BOTTOM_CENTER,
|
||||
// offsetTopBar: false, // avoid overlapped by status bar, for iOS7+
|
||||
bgColor: 'black', // color name, or '#RRGGBB'
|
||||
// x: integer, // valid when set position to 0 / POS_XY
|
||||
// y: integer, // valid when set position to 0 / POS_XY
|
||||
isTesting: true, // set to true, to receiving test ad for testing purpose
|
||||
// autoShow: true // auto show interstitial ad when loaded, set to false if prepare/show
|
||||
};
|
||||
var admobid = {};
|
||||
|
||||
if(ionic.Platform.isAndroid())
|
||||
{
|
||||
admobid = { // for Android
|
||||
banner: 'ca-app-pub-6869992474017983/9375997553',
|
||||
interstitial: 'ca-app-pub-6869992474017983/1657046752'
|
||||
};
|
||||
}
|
||||
|
||||
if(ionic.Platform.isIOS())
|
||||
{
|
||||
admobid = { // for iOS
|
||||
banner: 'ca-app-pub-6869992474017983/4806197152',
|
||||
interstitial: 'ca-app-pub-6869992474017983/7563979554'
|
||||
};
|
||||
}
|
||||
|
||||
admob.setOptions(defaultOptions);
|
||||
|
||||
// Prepare the ad before showing it
|
||||
// - (for example at the beginning of a game level)
|
||||
admob.prepareInterstitial({
|
||||
adId: admobid.interstitial,
|
||||
autoShow: false,
|
||||
success: function(){
|
||||
console.log('interstitial prepared');
|
||||
},
|
||||
error: function(){
|
||||
console.log('failed to prepare interstitial');
|
||||
}
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
console.log("No AdMob?");
|
||||
}
|
||||
|
||||
return {
|
||||
showBanner: function() {
|
||||
if(admob)
|
||||
{
|
||||
admob.createBanner({
|
||||
adId:admobid.banner,
|
||||
position:admob.AD_POSITION.BOTTOM_CENTER,
|
||||
autoShow:true,
|
||||
success: function(){
|
||||
console.log('banner created');
|
||||
},
|
||||
error: function(){
|
||||
console.log('failed to create banner');
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
showInterstitial: function() {
|
||||
if(admob)
|
||||
{
|
||||
// If you didn't prepare it before, you can show it like this
|
||||
// admob.prepareInterstitial({adId:admobid.interstitial, autoShow:autoshow});
|
||||
|
||||
// If you did prepare it before, then show it like this
|
||||
// - (for example: check and show it at end of a game level)
|
||||
admob.showInterstitial();
|
||||
}
|
||||
},
|
||||
removeAds: function() {
|
||||
if(admob)
|
||||
{
|
||||
admob.removeBanner();
|
||||
}
|
||||
}
|
||||
};
|
||||
})
|
||||
|
||||
.factory('iAd', function ($window){
|
||||
var iAd = $window.iAd;
|
||||
|
||||
// preppare and load ad resource in background, e.g. at begining of game level
|
||||
if(iAd) {
|
||||
iAd.prepareInterstitial( { autoShow:false } );
|
||||
}
|
||||
else
|
||||
{
|
||||
console.log("No iAd?");
|
||||
}
|
||||
|
||||
return {
|
||||
showBanner: function() {
|
||||
if(iAd)
|
||||
{
|
||||
// show a default banner at bottom
|
||||
iAd.createBanner({
|
||||
position:iAd.AD_POSITION.BOTTOM_CENTER,
|
||||
autoShow:true
|
||||
});
|
||||
}
|
||||
},
|
||||
showInterstitial: function() {
|
||||
// ** Notice: iAd interstitial Ad only supports iPad.
|
||||
if(iAd)
|
||||
{
|
||||
// If you did prepare it before, then show it like this
|
||||
// - (for example: check and show it at end of a game level)
|
||||
iAd.showInterstitial();
|
||||
}
|
||||
},
|
||||
removeAds: function() {
|
||||
if(iAd)
|
||||
{
|
||||
iAd.removeBanner();
|
||||
}
|
||||
}
|
||||
};
|
||||
})
|
||||
|
||||
;
|
||||
Loading…
Add table
Add a link
Reference in a new issue