2014-10-13 90 views
2

我已經嘗試了許多不同的文件和代碼組合來獲得這些phonegap構建插件的功能,但迄今沒有任何工作。Phonegap構建插件不包括

這是的index.html的開始,我認爲應該工作(但所有的第一個腳本包括不PhoneGap的插件或直接關係到PhoneGap的):

<!doctype html> 
<html> 
<head> 
<script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 

<script type="text/javascript" charset="utf-8" src="jquery-2.1.1.min.js"></script> 
<script type="text/javascript" charset="utf-8" src="pushNotif.js"></script> 
<script type="text/javascript" charset="utf-8" src="tAuth.js"></script> 
<script type="text/javascript" charset="utf-8" src="printR.js"></script> 
<script type="text/javascript" charset="utf-8" src="clearCache.js"></script> 

這是config.xml中

<?xml version="1.0" encoding="UTF-8" ?> 
<widget xmlns="http://www.w3.org/ns/widgets" 
    xmlns:gap = "http://phonegap.com/ns/1.0" id="com.example.example" version="0.0.1"> 
    <name>Example</name> 
    <icon src="icon.png" /> 
    <description> 
     Example app. 
    </description> 
    <author email="[email protected]" href="https://example.com"> 
     Example 
    </author> 
    <content src="index.html" /> 
    <access origin="*" /> 
    <preference name="phonegap-version" value="3.5.0" /> 
    <feature name="Geolocation"> 
     <param name="ios-package" value="CDVLocation" /> 
    </feature> 
    <gap:plugin name="org.apache.cordova.inappbrowser" version="0.5.2" /> 
    <gap:plugin name="com.oauthio.plugins.oauthio" version="0.2.4" /> 
    <gap:plugin name="com.phonegap.plugins.pushplugin" version="2.4.0" /> 
    <gap:plugin name="org.apache.cordova.dialogs" version="0.2.10" /> 
    <gap:plugin name="org.apache.cordova.geolocation" version="0.3.10" /> 
</widget> 

測試,看有無對象OAuth(爲oauth.io)或window.plugins.pushNotification(用於PushPlugin)被定義或沒有,我總是得到他們是不確定的。

在我把一切都在一起,就像該文件夾:

  1. (必需的文件)
    • config.xml中
    • 的icon.png
    • 的index.html
  2. (應用專用文件)
    • 個printR.js
    • pushNotif.js
    • tAuth.js

(一切都是一個文件夾中,我只是把他們分開列表。)

所以這是非常簡單,直截了當,就像我認爲的指示所要求的一樣。然而,不幸的是,它不工作。

我試過把phonegap.js文件包括在內,包括cordova.js,而不是cordova.js文件,還包括插件的js,但我認爲它不是那種方式,所以我的方式提出的是我認爲應該如何建立的。


這是我使用的處理,並檢查了PhoneGap的插件pushplugin腳本:

if(typeof window.plugins != "undefined" && 
    typeof window.plugins.pushNotification != "undefined"){ 
    alert("phonegap pushplugin plugin IS included");//this worked 
    handlePushNotif(); 
} else { 
    alert("phonegap pushplugin plugin not included"); 
} 

function handlePushNotif(){ 
    //https://github.com/phonegap-build/PushPlugin/tree/93067b9303252d5ed7394819bf220db56d99d22c 

    var pushNotification; 
    pushNotification = window.plugins.pushNotification; 

    //register 
    //Get your senderID by signing into to your google dashboard. The //senderID is found at Overview->Dashboard->Project Number. 
    if (device.platform == 'android' || device.platform == 'Android') 
    { 
     pushNotification.register(
      successHandler, 
      errorHandler, { 
       "senderID":"888264849750", 
       "ecb":"onNotificationGCM" 
      }); 
    } 
    else 
    { 
     pushNotification.register(
      tokenHandler, 
      errorHandler, { 
       "badge":"true", 
       "sound":"true", 
       "alert":"true", 
       "ecb":"onNotificationAPN" 
      }); 
    } 
    // result contains any message sent from the plugin call 
    function successHandler (result) { 
     alert('result = ' + result); 
    } 

    // result contains any error description text returned from the plugin call 
    function errorHandler (error) { 
     alert('error = ' + error); 
    } 

    //tokenHandler (iOS ony) - called when the device has registeredwith a unique device token. 
    function tokenHandler (result) { 
     // Your iOS push server needs to know the token before it can push to this device 
     // here is where you might want to send it the token for later use. 
     alert('device token = ' + result); 
    } 
} 

如果我包括PushNotification.js劇本,我看到window.plugins.pushNotificationundefined。但是,使用phonegap構建,我認爲它可能被設計爲自動包含它。如果我沒有手動包含它(將文件PushNotification.js從git存儲庫複製到項目文件並專門包含它),我就知道該對象沒有被定義。但是,在phonegap build儀表板中,它顯示我確實包含了該插件。

回答

1

您的config.xml無效。這些行很差:

<!doctype html> 
<html> 
<head> 
+0

我很抱歉,這是我的問題中的錯誤。這個問題看起來像我忘記將這些行放在index.html代碼的頂部,所以我複製並隨意地將它們粘貼到'config.xml'代碼中。實際上,我之前沒有留下足夠的空間,所以這些線條並沒有出現。這個問題現在已經解決了。 – JVE999

+0

在您的項目中,當您單擊插件選項卡時,是否列出了任何內容? –

+0

所有插件都正確列出。我發現其中一些正在被包括在內。只有一個,'com.oauthio.plugins.oauthio'不能正常工作。不知道該怎麼處理這個問題,因爲從技術上講,現在可能是一個不同的問題 - 一個涉及特定插件。 – JVE999