Skip to content

Instantly share code, notes, and snippets.

@stephenlb
Forked from domadev812/1.bash
Created November 15, 2017 21:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stephenlb/8021f180187c76c18df83297fc4747dc to your computer and use it in GitHub Desktop.
Save stephenlb/8021f180187c76c18df83297fc4747dc to your computer and use it in GitHub Desktop.
$ npm install -g cordova
$scope.publish = function() {
PubNub.ngPublish({
channel: $scope.channel,
message: "[" + $scope.userId + "] " + $scope.newMessage
});
$scope.newMessage = '';
};
$ cordova platform add ios
$ cordova build ios
$ cordova emulate ios
$ cordova create [folder name] [com.example.appname] [application name]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="format-detection"
content="telephone=no" />
<meta name="msapplication-tap-highlight"
content="no" />
<meta name="viewport"
content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
<!-- Required libraries for the chat -->
<script src="https://cdn.pubnub.com/sdk/javascript/pubnub.4.17.0.js"></script>
<script src="https://cdn.pubnub.com/pubnub-crypto.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
<script src="<location-of-PubNub-SDK>/pubnub-angular-4.0.2.min.js"></script>
<link rel="stylesheet" href="https://netdna.bootstrapcdn.com/bootstrap/3.0.2/css/bootstrap.min.css">
<title>PubNub Angular Mobile Chat</title>
</head>
<body>
<div class="container" ng-app="PubNubAngularApp" ng-controller="ChatCtrl">
<br />
<h4>Online Users</h4>
<ul>
<li ng-repeat="user in users">{{user}}</li>
</ul>
<br />
<h4>Chat History ({{messages.length}})</h4>
<form ng-submit='publish()'>
<input type="text" ng-model='newMessage' />
<input type="submit" value="Send" />
</form>
<br />
<div class="well">
<ul>
<li ng-repeat="message in messages">{{message}}</li>
</ul>
</div>
</div>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/pubnubAngularApp.js"></script>
</body>
</html>
Pubnub.init({
publishKey: 'your pub key',
subscribeKey: 'your sub key'
});
Pubnub.subscribe({
channels : [$scope.selectedChannel],
channelGroups: [$scope.selectedChannelGroup],
withPresence: true,
triggerEvents: ['message', 'presence', 'status']
});
$rootScope.$on(Pubnub.getMessageEventNameFor($scope.selectedChannel), function (ngEvent, envelope) {
$scope.$apply(function () {
// add message to the messages list
$scope.chatMessages.unshift(envelope.message);
});
});
$rootScope.$on(Pubnub.getPresenceEventNameFor($scope.selectedChannel), function (ngEvent, pnEvent) {
// apply presence event (join|leave) on users list
handlePresenceEvent(pnEvent);
});
Pubnub.hereNow(
{
channels: [$scope.channel],
channelGroups : ["cg1"],
includeUUIDs: true,
includeState: true
},
function (status, response) {
// handle status, response
}
);
Pubnub.history(
{
channel: $scope.channel,
reverse: false, // false is the default
count: 50, // 100 is the default
stringifiedTimeToken: true // false is the default
},
function (status, response) {
// handle status, response
}
);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment