2013-10-17 90 views
4

我正在開發一個帶有AngularJS和Phonegap Build的Android/iOS應用程序,在Chrome中使用Ripple Emulator進行本地調試。PhoneGap Build - navigator.notification.confirm not working(方法未定義)

navigator.notification.confirm不適用於我,而navigator.notification.alert,navigator.notification.beep和navigator.notification.vibrate工作正常。 Chrome說:"Uncaught TypeError: Object [object Object] has no method 'confirm'",iOS模擬器什麼都不做。

我有我的config.xml <gap:plugin name="org.apache.cordova.core.dialogs" /><preference name="phonegap-version" value="3.0.0" />,我的index.js已經在deviceready回調如下:

navigator.notification.confirm("Yes or no?", function(){}, "Confirmation", "Yes,No"); 

任何想法?謝謝。

+0

在頁面中有onDeviceReady()嗎? –

+0

是的,'navigator.notification.confirm'位於'deviceready'事件中。當我做一個'console.log(navigator.notification);'它說'Object {alert:function,beep:function,vibrate:function}'。所以'navigator.notification'中顯然沒有'confirm'方法?文檔說,它在那裏.... – belomat

+0

鉻不會做任何事情......,我建議你在原始設備上測試, –

回答

1

由於mvp說,你需要確保你有一個onDeviceReady函數在你的頁面上,並且不會調用任何API,直到它被觸發。

此外,還應確保您在HTML頁面中的標籤<head></head如下:

<script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
+0

感謝您的反饋。我的頁面中有'phonegap.js'。此外,'alert','beep'和'vibrate'通知按預期工作。 'navigator.notification'只有這三種方法,'確認'對我來說是缺少的(參見上面的答案)。 – belomat

2

我只是一個全新的安裝(科爾多瓦3.1.X)試圖與它沒有任何問題,工作得很好。我自己安裝了插件cordova plugin add org.apache.cordova.dialogs,這與使用phonegap-build有點不同。我認爲這可能是PGB的一個問題,但我會提出的一個建議是更改:<gap:plugin name="org.apache.cordova.core.dialogs" /><gap:plugin name="org.apache.cordova.dialogs" />,即刪除。核心部分,因爲核心已從命名空間中刪除(可能仍然存在3.0)。

+0

根據文檔(https://build.phonegap.com/plugins/74),您需要像@belomat那樣的插件行:'' – Dom

+0

在3.1你將需要刪除核心:https://github.com/apache/cordova-plugin-dialogs/commit/2ee32ab0b9e2e7fbb3a9a042e885ec8a91b5f470 它看起來像OP是特別要求v3.0.0,雖然如此他''行應該工作(我會想。) – MBillau

+1

感謝您的答覆,但它不適用於我。我已更新到PhoneGap 3.1.0,並將插件更改爲'',但結果相同。 「navigator.notification」功能只有三種方法:警報,嗶聲和振動。 – belomat

0

對話框插件中應該沒有振動功能,只有警報,嗶聲,確認和提示。 但是,如果您安裝了振動插件,那麼您當然會看到震動。

如果您只看到警報,嘟嘟聲和振動,那麼我會說你的插件安裝有問題......我最近見過的東西。

我相信這個問題適用於新安裝,因爲MBillau提到他的應用程序工作正常。在已經存在的應用程序上安裝插件似乎對我來說很麻煩。這是我發現的:

我使用3個插件(媒體,設備,通知)和通知是唯一不工作。通知還發生在設備準備就緒後(我可以播放媒體並獲取設備信息,然後嘗試通知並且不進行任何操作)。

我遇到的問題是phonegap CLI添加插件的方式。

有在通知WWW/corodova_plugins.js的條目,但有介質和設備 有android系統/ SRC /組織/阿帕奇/科爾多瓦的通知沒有SRC,但有介質和設備。 在www/plugins中沒有用於對話框的JS src,但是有介質和設備。

檢查這些位置以查看您是否擁有通知信息。

我試着用各種命令多次添加插件。配置。XML DID包括:

{PROJECT.DIR} /插件DID具有對話以及媒體和設備SRC。

警告:運行「phonegap build android」會在提及的文件夾中放置正確的源文件,但它會清除asset/www中的所有src文件。

我的補救措施:創建一個全新的骨架項目,添加所需的插件,爲您需要的平臺進行構建,然後比較骨架Phonegap應用程序和Real應用程序之間的源代碼以查看差異。現在看來,PhoneGap CLI是「破碎的」,因爲我不相信它會將插件正確添加到已經存在的應用程序中。

相關問題