我正在尝试在我的网络服务器上注册各种设备的GCM ID,以便我可以发送推送通知。我使用以下代码来获取设备的 GCM ID。
<script type="text/javascript">
document.addEventListener("deviceready",onDeviceReady,false);
function onDeviceReady(){
console.log("Device Ready")
var push = PushNotification.init({ "android": {"senderID":"989946143452"},
"ios": {"alert": "true", "badge": "true", "sound": "true"}, "windows": {} } );
push.on('registration', function(data) {
console.log(data.registrationId);
$("#gcm_id").html(data.registrationId);
});
push.on('notification', function(data) {
console.log(data.message);
alert(data.title+" Message: " +data.message);
// data.title,
// data.count,
// data.sound,
// data.image,
// data.additionalData
});
push.on('error', function(e) {
console.log(e.message);
});
}
</script>
然后我使用以下表单字段将 gcm id 从 javascript 解析为 html 表单字段,
<input type="hidden" name="gcm_id" id="gcm_id" required/>
表单字段似乎未获取gcm_id值。对此有什么解决方法吗?
当然,我正在使用ajax将数据发送到php脚本,该脚本将gcm_id存储在我的MySQL表上。
我将回答这个问题,因为我刚刚意识到错误出在我的 ajax 提交脚本上。这是运行良好的整个脚本。请注意我对$("#gcm_id").html(data.registrationId);
所做的更改,以$("#gcm_id").text(data.registrationId);
<script type="text/javascript">
document.addEventListener("deviceready",onDeviceReady,false);
function onDeviceReady(){
console.log("Device Ready")
var push = PushNotification.init({ "android": {"senderID":"XXXXXXXXXXXXXX"},
"ios": {"alert": "true", "badge": "true", "sound": "true"}, "windows": {} } );
push.on('registration', function(data) {
console.log(data.registrationId);
//$("#gcm_id").html(data.registrationId);
$("#gcm_id").text(data.registrationId);
$.ajax({
url: "http://YOURDOMAIN.COM/gcmreg.php",
type: "POST",
dataType: 'text',
data: {registrationId: data.registrationId},
success: function (data) {
alert(data);
}
});
});
push.on('notification', function(data) {
console.log(data.message);
alert(data.title+" Message: " +data.message);
// data.title,
// data.count,
// data.sound,
// data.image,
// data.additionalData
});
push.on('error', function(e) {
console.log(e.message);
});
}
</script>