None 的插件可以加载到 Cordova/PhoneGap Android 混合移动应用程序中。怎么解决?
None of the plugins can be loaded in Cordova/PhoneGap Android hybrid mobile app. How to solve?
我已完全按照此处的说明进行操作。 (https://documentation.onesignal.com/v3.0/docs/phonegap-sdk-setup)
我的目标是将推送通知从服务器(Firebase 或 OneSignal)发送到我正在 Chrome 浏览器或 PhoneGap 测试应用程序上测试的 Android 设备。
我已将以下代码添加到我的 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
我发现我试过的所有其他新插件都出现同样的错误。这意味着出了点问题。
这是我的 config.xml
<?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="support@phonegap.com" 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>
这是关键
which I am testing on Chrome browser or PhoneGap test app.
如果您在 Chrome 上测试,Cordova 插件在那里不起作用
如果您在 Phonegap 测试应用程序上进行测试,Phonegap 开发人员应用程序是一个 Cordova 应用程序,它是用一些 Cordova 插件构建的,但它不包含 onesignal 插件,因此您不能使用当你在那里测试时插件。
因此,您需要做的是直接在 phone 中编译和 运行 您的应用程序(没有 Chrome 或 Phonegap 应用程序)
我不使用 Phonegap,所以我不确定您需要的确切命令。你可以试试
phonegap run android --device
或
phonegap cordova run android --device
或
cordova run android --device
(这可能需要安装 Cordova CLI npm install -g cordova
)
您需要安装 Android SDK 才能使之前的命令生效。
我已完全按照此处的说明进行操作。 (https://documentation.onesignal.com/v3.0/docs/phonegap-sdk-setup)
我的目标是将推送通知从服务器(Firebase 或 OneSignal)发送到我正在 Chrome 浏览器或 PhoneGap 测试应用程序上测试的 Android 设备。
我已将以下代码添加到我的 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
我发现我试过的所有其他新插件都出现同样的错误。这意味着出了点问题。
这是我的 config.xml
<?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="support@phonegap.com" 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>
这是关键
which I am testing on Chrome browser or PhoneGap test app.
如果您在 Chrome 上测试,Cordova 插件在那里不起作用
如果您在 Phonegap 测试应用程序上进行测试,Phonegap 开发人员应用程序是一个 Cordova 应用程序,它是用一些 Cordova 插件构建的,但它不包含 onesignal 插件,因此您不能使用当你在那里测试时插件。
因此,您需要做的是直接在 phone 中编译和 运行 您的应用程序(没有 Chrome 或 Phonegap 应用程序)
我不使用 Phonegap,所以我不确定您需要的确切命令。你可以试试
phonegap run android --device
或
phonegap cordova run android --device
或
cordova run android --device
(这可能需要安装 Cordova CLI npm install -g cordova
)
您需要安装 Android SDK 才能使之前的命令生效。