每当有新消息时,我都会尝试自动滚动到底部.
我的代码会移动滚动条,但它不会将其置于底部.请帮助.这是我的傻瓜.
http://plnkr.co/edit/NSwZFtmBYZuW7e2iAUq9
这是我的HTML:
<!DOCTYPE html>
<html>
<head>
<script data-require="angular.js@1.3.0-beta.5" data-semver="1.3.0-beta.5" src="https://code.angularjs.org/1.3.0-beta.5/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body>
<div ng-app="Sojharo">
<div ng-controller="MyController">
<div id="chatBox">
<div ng-repeat="message in messages">
<div class="chatMessage">
<div class="messageTextInMessage">{{message.msg}}</div>
</div>
</div>
</div>
<div class="chatControls">
<form ng-submit="sendIM(im)">
<input type="text" ng-model="im.msg" placeholder="Send a message" class="chatTextField" />
</form>
Type and press Enter
</div>
</div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
这是javascript:
angular.module('Sojharo', [])
.controller('MyController', function($scope) {
$scope.messages = [];
$scope.im = {};
$scope.sendIM = function(msg) {
$scope.messages.push(msg);
$scope.im = {};
var …Run Code Online (Sandbox Code Playgroud) 我想听一下AngularJS服务中的窗口事件,以便我可以将它们广播到我的控制器.
我有一个Chrome扩展程序,用于发送任何消息port.postMessage('Any Message');.
我希望我的angularjs服务收听该消息并使用它发送给控制器 $rootScope.$broadcast("Something occurred.");
在我的服务中,我正在尝试使用以下监听器.
window.addEventListener('Any Message', function (event) {
if (event.origin != window.location.origin) {
return;
}
$rootScope.$broadcast("Something occurred.");
});
Run Code Online (Sandbox Code Playgroud)
我也试过,$window但我不知道为什么上面的代码不起作用.我的IDE,jetbrains webstorms也将上面的代码片段归类为无法访问.
在此之前,我在控制器中使用了上面的代码,它工作正常.我没有在控制器中做广播.现在我想将其移至服务中,以便所有控制器都能够从服务中收听它.
有关快速信息,我使用以下教程:
问题我可以在打开应用程序时收到推送通知(从我的Nodejs服务器发送).但是,当我关闭应用程序并将其从最近删除时,我没有收到任何推送通知.我正在使用Azure推送通知中心.
所有代码都在上面的链接中,但是,我也把它放在这里,就像我实现它一样.
在Android Manifest文件中添加了以下块:(为简单起见,标签未显示,我在正确的位置添加了块)
<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<service android:name="<your package>.MyInstanceIDService" android:exported="false">
<intent-filter>
<action android:name="com.google.android.gms.iid.InstanceID"/>
</intent-filter>
</service>
<service
android:name="<your package>.RegistrationIntentService"
android:exported="false">
</service>
<receiver android:name="com.microsoft.windowsazure.notifications.NotificationsBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="<your package name>" />
</intent-filter>
</receiver>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:name="<your package>.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="<your package>.permission.C2D_MESSAGE"/>
Run Code Online (Sandbox Code Playgroud)
以下是我根据教程添加的类:
public class NotificationSettings {
public static String SenderId = "<Your project number>";
public static String HubName = "<Your HubName>";
public static String HubListenConnectionString …Run Code Online (Sandbox Code Playgroud) push-notification google-cloud-messaging azure-mobile-services
我正在尝试在Android上实现WebRTC DataChannel.我想创建一个简单的peerconnection对象,它将打开DataChannel以使用WebRTC通过网络发送数据.我尝试创建PeerConnection对象时收到错误.我了解到我们使用工厂来创建peerconnection对象factory.createPeerConnection().
为此,我必须首先创建PeerConnectionFactory对象.在此之后,我可以使用它来创建PeerConnection对象.我得到错误Could not find method android.media.MediaCodec.setParameters,Fatal Signal 11 (SIGSEGV) at 0x00000000 (code=1)当我尝试创建PeerConnectionFactory对象时.我也试过以下代码PeerConnectionFactory.initializeAndroidGlobals(this, false, false, false);这就是我想要做的:
PeerConnectionFactory factory = new PeerConnectionFactory();
peer = new Peer();
Run Code Online (Sandbox Code Playgroud)
这是我的Peer对象的样子:
public class Peer implements SdpObserver, PeerConnection.Observer, DataChannel.Observer {
private PeerConnection pc;
private DataChannel dc;
public Peer() {
this.pc = factory.createPeerConnection(RTCConfig.getIceServer(),
RTCConfig.getMediaConstraints(), this);
dc = this.pc.createDataChannel("sendDataChannel", new DataChannel.Init());
}
@Override
public void onAddStream(MediaStream arg0) {
// TODO Auto-generated method stub
}
@Override
public void onDataChannel(DataChannel dataChannel) { …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Chrome 上的 Android 和 Web 应用程序之间进行电话会议。当 Android 将优惠发送到 Web 应用程序时,我在 Chrome 控制台上收到以下错误:
无法构造“RTCSessionDescription”:参数 1(“descriptionInitDict”)不是对象。
这是屏幕截图:
在 Android 上,我有这样的代码:
PeerConnectionFactory.initializeAndroidGlobals(listener, true, true,
true, mEGLcontext);
Run Code Online (Sandbox Code Playgroud)
这就是我创建对等连接对象的方式:
this.pc = factory.createPeerConnection(RTCConfig.getIceServer(), RTCConfig.getMediaConstraints(), this);
Run Code Online (Sandbox Code Playgroud)
RTCConfig.getMediaConstraints() 函数定义如下:
public static MediaConstraints getMediaConstraints(){
// Initialize PeerConnection
MediaConstraints pcMediaConstraints = new MediaConstraints();
pcMediaConstraints.optional.add(new MediaConstraints.KeyValuePair(
"DtlsSrtpKeyAgreement", "true"));
pcMediaConstraints.mandatory.add(new MediaConstraints.KeyValuePair(
"OfferToReceiveAudio", "true"));
pcMediaConstraints.mandatory.add(new MediaConstraints.KeyValuePair(
"OfferToReceiveVideo", "true"));
return pcMediaConstraints;
}
Run Code Online (Sandbox Code Playgroud)
RTCConfig.getICEServer() 函数定义为:
public static LinkedList<PeerConnection.IceServer> getIceServer(){
// Initialize ICE server list
LinkedList<PeerConnection.IceServer> iceServers = new LinkedList<PeerConnection.IceServer>();
iceServers.add(new PeerConnection.IceServer("stun:stun.l.google.com:19302"));
return iceServers;
} …Run Code Online (Sandbox Code Playgroud)