Webビューで既存のWebアプリケーション(Rails)をcordova app
としてラッピングしています。私はonDeviceReadyでホームページを開きます。プッシュ通知に登録すると、それに続きます。Phonegap - 埋め込みWebアプリケーションを使用したプッシュ通知(InAppBrowserウィンドウ)
var ref = cordova.InAppBrowser.open(window.app_url,
'_blank', 'location=no,clearsessioncache=no');
setupPushNotifications(window.app_url, ref);
私は、プッシュ通知のためのphonegap-plugin-push
を使用しています。
push.on('registration', function(data) {
saveRegistrationId(app_url, data);
});
ウェブアプリケーションのログインユーザーのコンテキストで通知登録IDを関連付けたいとします。
これは、phonegapデベロッパーアプリを使用するときに問題なく動作するようです。しかし、これは私のデバイスにandroid-debug.apk
をインストールするときに、registrationIdを保存するためのレールアプリを呼び出すことはありません。
config.xmlの
<access origin="*" />
<allow-navigation href="http://192.168.1.3:8000" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
<allow-intent href="tel:*" />
<allow-intent href="sms:*" />
<allow-intent href="mailto:*" />
<allow-intent href="geo:*" />
の内容は私も同じのWebViewで開くように、_self
を試してみました。 setupPushNotificationsは実行されません。
はトークン
function saveRegistrationId(app_url, data) {
// this is our payload for the POST request to server
// data = {registrationId: 'XXXXX', registrationType: 'FCM'}
const device_data = Object.assign(data, this.device);
const url = app_url + "/mobile_devices";
navigator.notification.alert(data.registrationId);
navigator.notification.alert(url);
var httpRequest = new XMLHttpRequest();
httpRequest.open('POST', url);
httpRequest.onreadystatechange = function() {
navigator.notification.alert('readyState : ' + httpRequest.readyState);
navigator.notification.alert('status : ' + httpRequest.status);
if (httpRequest.readyState>3 && httpRequest.status==200) { console.log(httpRequest.responseText); }
};
httpRequest.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
httpRequest.setRequestHeader('Content-Type', 'application/json');
httpRequest.send(JSON.stringify({device: device_data}));
}
'cordova-plugin-whitelist'を設定しましたか?また、実際のデバイスで実行しているときに、クロム開発ツールを使用してJS /ネットワークエラーのアプリをチェックしてみてください。 – wildabeast
質問をconfig.xmlファイルの設定で更新しました。 – naruvimama
JavascriptコンソールにJSエラー/ネットワークエラーが表示されていますか? – wildabeast