Войти на сайт Drupal в Phonegap - PullRequest
       21

Войти на сайт Drupal в Phonegap

2 голосов
/ 13 октября 2011

Я пытаюсь разрешить моим пользователям входить из своего мобильного приложения на сайт Drupal, чтобы получить некоторую информацию из своего профиля. Кто-нибудь знает, как это сделать? У меня на сайте есть модуль «Службы», который уже обслуживает некоторые файлы JSON для новостей.

Ответы [ 2 ]

5 голосов
/ 15 февраля 2012

В модуле Services 3.x для Drupal 6 или 7 вам необходимо создать конечную точку через пользовательский интерфейс, например:

  • Имя: my_services
  • Название конечной точки: MyСлужбы
  • Сервер: REST
  • Путь к конечной точке: my_services_path

Затем включите следующий ресурс для вновь созданной конечной точки:

  • User -> Login

Если ваше мобильное приложение основано на HTML5 и JS, вы можете использовать Ajax, например, в PhoneGap с 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

В качестве альтернативы я сделал модуль, которыйобеспечивает прочную основу для связи с сайтом Drupal 6 или 7 через PhoneGap и Services 3.x, он называется DrupalGap:

0 голосов
/ 18 ноября 2011

Есть модуль 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/

...