2017-12-02 306 views
2

我按照这里的指示点。 (https://documentation.onesignal.com/v3.0/docs/phonegap-sdk-setup没有任何插件可以在Cordova/PhoneGap Android混合移动应用程序中加载。怎么解决?

我的目标是将推送通知从服务器(Firebase或OneSignal)发送到我在Android设备上进行测试的Chrome浏览器或PhoneGap测试应用程序。

我已将下面的代码添加到我的onDeviceReady函数中并且它运行;

console.log("OneSignal is here!"); 
var notificationOpenedCallback = function(jsonData) { 
    console.log('notificationOpenedCallback: ' + JSON.stringify(jsonData)); 
    alert("Received my notification"); 
}; 

// c02be63f-e777-4b99-8775-dec62efxxxxx is my APP ID 
window.plugins.OneSignal 
    .startInit("c02be63f-e777-4b99-8775-dec62efxxxxx") 
    .handleNotificationOpened(notificationOpenedCallback) 
    .endInit(); 

window.plugins.OneSignal.setSubscription (true); 

window.plugins.OneSignal.enableNotificationWhenActive(true); 

但是,运行后,我得到以下错误。有人可以解释这个错误的含义吗?

Error: exec proxy not found for :: StatusBar :: _ready 
(index):365 OneSignal is here! 
(index):365 Error: exec proxy not found for :: OneSignalPush :: setNotificationReceivedHandler 
(index):365 Error: exec proxy not found for :: OneSignalPush :: setNotificationOpenedHandler 
(index):365 Error: exec proxy not found for :: OneSignalPush :: init 
(index):365 Error: exec proxy not found for :: OneSignalPush :: setSubscription 

我注意到我试过的每个其他新插件都有同样的错误。这意味着有些事情是错的。

这是我​​3210

<?xml version='1.0' encoding='utf-8'?> 
<widget id="com.upen.testing" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:gap="http://phonegap.com/ns/1.0"> 
    <name>Testing</name> 
    <description> 
     A blank PhoneGap app. 
    </description> 
    <author email="[email protected]" href="http://phonegap.com"> 
     PhoneGap Team 
    </author> 
    <content src="index.html" /> 
    <access origin="*" /> 
    <gap:plugin name="onesignal-cordova-plugin" source="npm" spec="^2.2.4" /> 
    <preference name="phonegap-version" value="cli-7.1.1" /> 
    <preference name="android-build-tool" value="gradle" /> 
    <preference name="android-minSdkVersion" value="15" /> 
    <engine name="browser" spec="~5.0.1" /> 
    <plugin name="cordova-plugin-whitelist" spec="~1.3.3" /> 
    <plugin name="onesignal-cordova-plugin" spec="~2.2.4" /> 
    <plugin name="cordova-plugin-statusbar" spec="~2.3.0" /> 
    <plugin name="cordova-plugin-fcm" spec="^2.1.2" /> 
    <engine name="android" spec="~6.3.0" /> 
</widget> 
+0

看到我的[回复](https://stackoverflow.com/questions/39066959/check-internet-connection-in-android-webview-cordova/39211383#39211383)快速指南科尔多瓦安装。 –

+0

我已经安装了Cordova/PhoneGap/Node.js - 一切正常。除了在测试项目中加载的插件得到这个exec ...错误。 – Zac

+0

我认为问题出在。尝试下载并使用

回答

2

这是关键

其中我对Chrome浏览器或PhoneGap的测试应用程序测试。

如果您在Chrome测试,如果你对PhoneGap的测试程序测试科尔多瓦插件没有在那里工作

,在PhoneGap的开发应用是一个应用程序科尔多瓦,并已建有一些科尔多瓦插件,但它不包含onesignal插件,所以当你在那里测试时你不能使用插件。

所以,你所要做的就是编译并直接在您的手机上运行你的应用程序(不包括Chrome或PhoneGap的应用程序)

我不使用PhoneGap的,所以我不知道确切的命令你需要。您可以尝试

phonegap run android --device

phonegap cordova run android --device

cordova run android --device(这可能需要安装科尔多瓦CLI npm install -g cordova

您将需要安装Android SDK使先前的命令工作。

0

嘿你的代码看起来很好,这只是配置问题。

尝试用下面的命令

phonegap plugin update onesignal-cordova-plugin 

的SDK后的帮助更新onesignal-SDK是更新完成

phonegap platform rm android 

现在添加Android平台再次

phonegap platform add android 

现在,当您添加推送插件时,它不会在浏览器上或通过执行phonegap serve命令工作。你需要在真正的Android设备上运行它。

phonegap run android 

此命令与构建和安装apk到您的设备上。

现在你可以检查登录logcat。问题不再存在。

干杯:) 希望这会有所帮助。

相关问题