Skip to content

Instantly share code, notes, and snippets.

@ToeJamson
Last active October 19, 2017 01:37
Show Gist options
  • Save ToeJamson/41d423e24699d757c509 to your computer and use it in GitHub Desktop.
Save ToeJamson/41d423e24699d757c509 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/pubnub.min.js"></script>
<script src="https://cdn.pubnub.com/pubnub-crypto.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js"></script>
<script src="http://pubnub.github.io/pubnub-angular/lib/pubnub-angular.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({
subscribe_key: 'SUBSCRIBE KEY HERE',
publish_key: 'PUBLISH KEY HERE',
uuid:$scope.userId
});
PubNub.ngSubscribe({ channel: $scope.channel });
$rootScope.$on(PubNub.ngMsgEv($scope.channel), function(ngEvent, payload) {
scope.$apply(function() {
$scope.messages.push(payload.message);
});
});
$rootScope.$on(PubNub.ngPrsEv($scope.channel), function(ngEvent, payload) {
$scope.$apply(function() {
$scope.users = PubNub.ngListPresence($scope.channel);
});
});
PubNub.ngHereNow({
channel: $scope.channel
});
PubNub.ngHistory({
channel: $scope.channel,
count: 500
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment