2011-10-13 52 views
2

Drupal站點我試圖讓我的用戶從他們的移動應用Drupal站點登錄,以獲取他們的一些個人資料信息。任何人都知道如何去做?我在該網站上有服務模塊,它已經爲新聞提供了一些JSON文件。日誌中的PhoneGap

+0

你有這個標記的Drupal都6和Drupal 7,服務模塊更是千差萬別在這兩個版本之間......你能確認你實際使用的Drupal版本嗎? – Clive

回答

0

有一個Drupal PhoneGap的模塊,允許Android應用程序登錄,您的Drupal站點後,查看文章。我建議您查看模塊和Android應用程序的源代碼作爲您的應用程序的參考。

模塊:http://drupal.org/project/phonegap

來源爲Android應用:http://code.google.com/p/drupal-phonegap/

還有關於如何做到這一點這裏一個例子:http://www.tylerfrankenstein.com/user/4/code/drupal-json-services-examples-phonegap-jquery-mobile-android

如果你正在開發一個iPhone應用來查看這個帖子出來:http://www.jefflinwood.com/2011/10/easier-drupal-plugin-for-phonegap-ios-installation/

5

使用Drupal 6或7的Services 3.x模塊,您需要通過UI創建端點,例如:

  • 名稱:my_services
  • 端點標題:我的服務
  • 服務器:REST
  • 路徑終點:my_services_path

然後再啓用新創建的端點以下資源:

  • 用戶 - >登錄

如果您的移動應用是HTML5和JS基礎,那麼你可以在PhoneGap的使用Ajax,例如與jQueryMobile你可以做一個登錄頁面,這樣會加載自定義的JS文件:

<div data-role="page" id="page_login"> 

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

    <div data-role="header"> 
    <h1>Login</h1> 
    </div><!-- /header --> 

    <div data-role="content" class='content'> 
    <div> 
     <label for="page_login_name">Username</label> 
     <input type="text" id="page_login_name" /> 
    </div> 
    <div> 
     <label for="page_login_pass">Password</label> 
     <input type="password" id="page_login_pass" /> 
    </div> 
    <fieldset> 
     <div><button type="button" data-theme="b" id="page_login_submit">Login</button></div> 
    </fieldset> 
    </div><!-- /content --> 

</div><!-- /page --> 

然後當您的應用程序的登錄按鈕後,這個實現會去與你的應用程序的代碼my_app_login.js:

$('#page_login_submit').on('click',function(){ 

    // grab form input 
    var name = $('#page_login_name').val(); 
    if (!name) { alert('Please enter your user name.'); return false; } 
    var pass = $('#page_login_pass').val(); 
    if (!pass) { alert('Please enter your password.'); return false; } 

    // make the services call 
    var data_string = 'username=' + encodeURIComponent(name); 
    data_string += '&password=' + encodeURIComponent(pass); 
    $.ajax({ 
     url: "http://example.com/?q=my_services_path/user/login.json", 
     type: 'post', 
     data: data_string, 
     dataType: 'json', 
     error: function(XMLHttpRequest, textStatus, errorThrown) { 
     alert('page_login_submit - failed to login'); 
     console.log(JSON.stringify(XMLHttpRequest)); 
     console.log(JSON.stringify(textStatus)); 
     console.log(JSON.stringify(errorThrown)); 
     }, 
     success: function (data) { 
     alert('You are now logged in!'); 
     } 
    }); 
    return false; 
}); 

不管什麼平臺()你正在使用,以開發自己的移動應用程序,調用該服務的用戶登錄資源將是一樣的。

我有一個堅實的PhoneGap和Drupal例如這裏:

http://tylerfrankenstein.com/code/android-app-with-drupal-7-services-phonegap-and-jquery-mobile

可替換地,我提出,用於經由的PhoneGap和服務3一個Drupal 6或7站點通信提供了堅實的框架的模塊。X,它被稱爲DrupalGap: