Подробная демонстрация для iOS

improve this page | report issue

Обзор

В этой демонстрации рассматриваются все этапы потока:

  1. Пример приложения, поставляемый вместе с SDK клиента MobileFirst, регистрируется и загружается с помощью MobileFirst Operations Console.
  2. В MobileFirst Operations Console развертывается новый или предоставленный адаптер.
  3. В логику приложения вносятся изменения для запроса ресурса.

Конечный результат:

  • Проверка связи с MobileFirst Server.
  • Успешное извлечение данных с помощью адаптера.

Предварительные требования:

  • Xcode
  • Необязательно. MobileFirst CLI (загрузить)
  • Необязательно. Автономный экземпляр MobileFirst Server (загрузить)

1. Запуск MobileFirst Server

Убедитесь, что создан экземпляр Mobile Foundation либо
В случае применения MobileFirst Developer Kit перейдите в папку сервера и выполните следующую команду: ./run.sh (Mac и Linux) или run.cmd (Windows).

2. Создание приложения

В браузере откройте MobileFirst Operations Console с помощью следующего URL: http://your-server-host:server-port/mfpconsole. В локальном режиме введите следующий адрес: http://localhost:9080/mfpconsole. Идентификационные данные пользователя: admin/admin.

  1. Нажмите кнопку Создать рядом с разделом Приложения
    • Выберите платформу iOS
    • Введите com.ibm.mfpstarteriosobjectivec или com.ibm.mfpstarteriosswift в качестве идентификатора приложения (в зависимости от заготовки приложения, которая будет загружена на следующем шаге)
    • Введите 1.0 в качестве версии
    • Нажмите кнопку Зарегистрировать приложение

    Зарегистрировать приложение

  2. Щелкните на плитке Получить начальный код и выберите загрузку примера приложения iOS Objective-C или iOS Swift.

    Загрузка примера приложения

3. Изменение логики приложения

  1. Откройте проект Xcode, дважды щелкнув на файле .xcworkspace.

  2. Выберите файл [каталог-проекта]/ViewController.m/swift и вставьте следующий фрагмент кода, заменив существующую функцию getAccessToken():

    Objective-C:

    - (IBAction)getAccessToken:(id)sender {
    _testServerButton.enabled = NO;
    NSURL *serverURL = [[WLClient sharedInstance] serverUrl];
    _connectionStatusLabel.text = [NSString stringWithFormat:@"Connecting to server...\n%@", serverURL];
        
    NSLog(@"Testing Server Connection");
    [[WLAuthorizationManager sharedInstance] obtainAccessTokenForScope:@"" withCompletionHandler:^(AccessToken *token, NSError *error) {
         if (error != nil) {
             _titleLabel.text = @"Bummer...";
             _connectionStatusLabel.text = [NSString stringWithFormat:@"Failed to connect to MobileFirst Server\n%@", serverURL];
             NSLog(@"Did not receive an access token from server: %@", error.description);
         } else {
             _titleLabel.text = @"Yay!";
             _connectionStatusLabel.text = [NSString stringWithFormat:@"Connected to MobileFirst Server\n%@", serverURL];
             NSLog(@"Received the following access token value: %@", token.value);
                
             NSURL* url = [NSURL URLWithString:@"/adapters/javaAdapter/resource/greet/"];
             WLResourceRequest* request = [WLResourceRequest requestWithURL:url method:WLHttpMethodGet];
                
             [request setQueryParameterValue:@"world" forName:@"name"];
             [request sendWithCompletionHandler:^(WLResponse *response, NSError *error) {
                 if (error != nil){
                     NSLog(@"Failure: %@",error.description);
                 }
                 else if (response != nil){
                     // Will print "Hello world" in the Xcode Console.
                     NSLog(@"Success: %@",response.responseText);
                 }
             }];
         }
    
         _testServerButton.enabled = YES;
     }];
    }
    

    Swift:

    @IBAction func getAccessToken(sender: AnyObject) {
         self.testServerButton.enabled = false
            
         let serverURL = WLClient.sharedInstance().serverUrl()
            
         connectionStatusLabel.text = "Connecting to server...\n\(serverURL)"
         print("Testing Server Connection")
         WLAuthorizationManager.sharedInstance().obtainAccessTokenForScope(nil) { (token, error) -> Void in
                
             if (error != nil) {
                 self.titleLabel.text = "Bummer..."
                 self.connectionStatusLabel.text = "Failed to connect to MobileFirst Server\n\(serverURL)"
                 print("Did not recieve an access token from server: " + error.description)
             } else {
                 self.titleLabel.text = "Yay!"
                 self.connectionStatusLabel.text = "Connected to MobileFirst Server\n\(serverURL)"
                 print("Recieved the following access token value: " + token.value)
                    
                 let url = NSURL(string: "/adapters/javaAdapter/resource/greet/")
                 let request = WLResourceRequest(URL: url, method: WLHttpMethodGet)
                    
                 request.setQueryParameterValue("world", forName: "name")
                 request.sendWithCompletionHandler { (response, error) -> Void in
                     if (error != nil){
                         NSLog("Failure: " + error.description)
                     }
                     else if (response != nil){
                         NSLog("Success: " + response.responseText)
                     }
                 }
             }
                
             self.testServerButton.enabled = true
         }
    }
    

4. Развертывание адаптера

Загрузите этот подготовленный артефакт .adapter и разверните его с помощью MobileFirst Operations Console. Для этого выберите Действия → Развернуть адаптер.

Кроме того, можно нажать кнопку Создать рядом с разделом Адаптеры.

  1. Выберите Действия → Загрузить пример. Загрузите пример адаптера Java “Hello World”.

    Если Maven и MobileFirst CLI не установлены, выполните инструкции по настройке среды разработки.

  2. В окне Командная строка перейдите в корневую папку проекта Maven адаптера и выполните следующую команду:

    mfpdev adapter build
    
  3. После завершения компоновки разверните адаптер с помощью MobileFirst Operations Console. Для этого выберите Действия → Развернуть адаптер. Адаптер расположен в папке [adapter]/target.

    Развертывание адаптера

пример приложения

5. Тестирование приложения

  1. В Xcode выберите файл mfpclient.plist и укажите значения свойств protocol, host и port с учетом параметров сервера MobileFirst Server.
    • Обычные значения в случае применения локального экземпляра MobileFirst Server: http, localhost и 9080.
    • Обычные значения в случае применения удаленного экземпляра MobileFirst Server (в Bluemix): https, your-server-address и 443.

    Кроме того, если установлен MobileFirst CLI, перейдите в корневую папку проекта и выполните команду mfpdev app register. В случае применения удаленного экземпляра MobileFirst Server выполните команду mfpdev server add для добавления сервера, а затем выполните команду, аналогичную следующей: mfpdev app register myBluemixServer.

  2. Нажмите кнопку Воспроизвести.


Результаты

  • При нажатии кнопки Проверить связь с MobileFirst Server выдается сообщение Установлено соединение с MobileFirst Server.
  • Если приложению удалось подключиться к MobileFirst Server, ресурс запрашивается с помощью развернутого адаптера Java.

Ответ адаптера отображается в консоли Xcode.

Изображение приложения, успешно вызвавшего ресурс из MobileFirst Server

Дальнейшие действия

Узнайте больше об использовании адаптеров в приложениях, интеграции дополнительных служб, таких как Push-уведомления, с помощью среды защиты MobileFirst и других вопросах:

Last modified on April 18, 2017