试图通过FCM和Phonegap建立推送功能,但我不断收到此错误:未定义FCMPlugin。
index.js
FCMPlugin.onNotification(function(data){
if(data.wasTapped){
//Notification was received on device tray and tapped by the user.
alert( JSON.stringify(data) );
}else{
//Notification was received in foreground. Maybe the user needs to be
notified.
alert( JSON.stringify(data) );
}
});
index.html
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"
integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
crossorigin="anonymous"></script>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/index.js"></script>
<script type="text/javascript" src="plugins/cordova-plugin-
fcm/www/FCMPlugin.js"></script>
config.xml
<plugin name="cordova-plugin-whitelist" spec="~1.3.3" />
<plugin name="cordova-plugin-device" spec="~1.1.7" />
<plugin name="cordova-plugin-fcm" spec="~2.1.2" />
控制台
index.js:55 Uncaught ReferenceError: FCMPlugin is not defined
at index.js:55
(anonymous) @ index.js:55
(index):84 adding proxy for Device
(index):84 adding proxy for Battery
(index):84 adding proxy for Camera
(index):84 adding proxy for File
(index):84 adding proxy for Capture
(index):84 adding proxy for Globalization
(index):84 adding proxy for InAppBrowser
(index):84 adding proxy for NetworkStatus
(index):84 Error: exec proxy not found for :: FCMPlugin :: ready
(index):84 FCMPlugin Ready ERROR
(index):84 FCMPlugin.js: is created
(index):84 Persistent fs quota granted
****编辑
我为设备准备就绪时添加了一个事件侦听器,它似乎可以工作,但是我的控制台又给我另一个错误。
Error: exec proxy not found for :: FCMPlugin :: ready
(index):84 FCMPlugin Ready ERROR
(index):84 FCMPlugin.js: is created
(index):84 Persistent fs quota granted
(index):84 Error: exec proxy not found for :: FCMPlugin ::
registerNotification
这里有我更新的JS
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
var deviceID = device.uuid;
localStorage.uuid = deviceID;
FCMPlugin.onNotification(function(data){
if(data.wasTapped){
//Notification was received on device tray and tapped by the user.
alert( JSON.stringify(data) );
}else{
//Notification was received in foreground. Maybe the user needs to be notified.
alert( JSON.stringify(data) );
}
});
}`
答案 0 :(得分:0)
将FCMPlugin文件路径更改为index.html中的相同路径,因此必须通过以下方式调用该文件:
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="FCMPlugin.js"></script>
<script type="text/javascript" src="js/index.js"></script>
与cordova.js文件相同的位置。最后的脚本必须是您的index.js脚本