Открытие клиента OneNoteOpen the OneNote client

Вы можете использовать свойство links страницы или записной книжки, чтобы открыть приложение OneNote на определенной странице или в определенной записной книжке.You can use the links property of a page or notebook to open a OneNote application to a particular page or notebook.

Свойство links представляет собой объект JSON, содержащий два URL-адреса.The links property is a JSON object that contains two URLs. URL-адреса будут открывать страницу или записную книжку в клиентском приложении OneNote или в OneNote в Интернете.The URLs will open the page or notebook in the OneNote client application or in OneNote on the web.

{ 
    "links": {
        "oneNoteClientUrl": {
            "href": "onenote:https://..."
        },
        "oneNoteWebUrl": {
            "href": "https://..."
        }
    }
}
  • oneNoteClientUrloneNoteClientUrl

    • Открывает клиент OneNote, если он установлен на устройстве.Opens the OneNote client if it is already installed on the device. Этот URL-адрес включает префикс onenote.This URL includes the onenote prefix.
    • Открывает версию для конкретного языка, если она установлена на устройстве.Opens the language-specific version if one is installed on the device. В противном случае будет использован параметр языка платформы.Otherwise, uses the platform language setting.
  • oneNoteWebUrloneNoteWebUrl

    • Открывает OneNote в Интернете, если браузер, используемый по умолчанию на устройстве, поддерживает его.Opens OneNote on the web if the default browser on the device supports it.
    • Использует параметр языка браузера.Uses the browser language setting.

API OneNote возвращает свойство links в HTTP-ответе для следующих операций:The OneNote API returns the links property in the HTTP response for the following operations:

В примерах ниже показано, как проверить код состояния ответа, проанализировать объект JSON, чтобы извлечь из него URL-адреса, а затем открыть клиент OneNote.The following examples show how to check the status code of the response, parse the JSON to extract the URLs, and then open the OneNote client.

Пример для iOSiOS example

В примере ниже показано, как получить URL-адреса клиента OneNote из ответа JSON.The following example gets the OneNote client URLs from the JSON response. Для извлечения двух URL-адресов в примере используется библиотека AFNetworking (https://afnetworking.com/)).It uses the AFNetworking library (https://afnetworking.com/) to extract the two URLs. В этом примере created представляет собой указатель на объект ONSCPSStandardResponse, используемый для хранения значений ответов, а в объекте responseObject содержится проанализированный объект JSON.In the example, created is a pointer to the ONSCPSStandardResponse object used to store the response values, and responseObject holds the parsed JSON.

    /* Import the JSON library */
    #import "AFURLRequestSerialization.h"

    - (void)connectionDidFinishLoading:(NSURLConnection *)connection {
            if(delegate) {
                  int status = [returnResponse statusCode];
                  ONSCPSStandardResponse *standardResponse = nil;
                  if (status == 201) {
                        ONSCPSCreateSuccessResponse *created = 
                              [[ONSCPSCreateSuccessResponse alloc] init];
                        created.httpStatusCode = status;
                        NSError *jsonError;
                        NSDictionary *responseObject = 
                              [NSJSONSerialization JSONObjectWithData:returnData options:0 error:&jsonError];
                        if(responseObject && !jsonError) {
                              created.oneNoteClientUrl = ((NSDictionary *)
                                    ((NSDictionary *)responseObject[@"links"])[@"oneNoteClientUrl"])[@"href"];
                              created.oneNoteWebUrl = ((NSDictionary *)
                                    ((NSDictionary *)responseObject[@"links"])[@"oneNoteWebUrl"])[@"href"];
                        }
                  standardResponse = created;
                  }
                  else {
                        ONSCPSStandardErrorResponse *error = [[ONSCPSStandardErrorResponse alloc] init];
                        error.httpStatusCode = status;
                        error.message = [[NSString alloc] initWithData:returnData 
                              encoding:NSUTF8StringEncoding];
                        standardResponse = error;
                  }
                  // Send the response back to the client.
                  if (standardResponse) {
                        [delegate exampleServiceActionDidCompleteWithResponse: standardResponse];
                  }
            }
      }

После того как вы проанализируете URL-адреса, полученные в ответе, вы сможете открыть OneNote, используя указанный ниже код.After you parse the URLs from the response, you can open OneNote by using the following code. Используется oneNoteClientUrl для открытия установленного клиента OneNote или oneNoteWebURL для открытия OneNote в Интернете.Use oneNoteClientUrl to open the installed OneNote client or oneNoteWebURL to open OneNote on the web.

NSURL *url = [NSURL URLWithString:standardResponse.oneNoteWebUrl];
[[UIApplication sharedApplication] openURL:url];

Пример для AndroidAndroid example

Прежде всего, проверьте наличие кода состояния успеха, а затем проанализируйте объект JSON.First, check for the success status code, and then parse the JSON. В примере предполагается, что был отправлен запрос POST, поэтому выполняется проверка наличия кода состояния 201 Created.The example assumes a POST request was sent, so it checks for a 201 Created status code. Если вы создали запрос GET, то вместо этого проверьте наличие кода состояния 200.If you made a GET request, check for a 200 status code instead.

public ApiResponse getResponse() throws Exception {
    /* Get the HTTP response code and message from the connection object */
    int responseCode = mUrlConnection.getResponseCode();
    String responseMessage = mUrlConnection.getResponseMessage();
    String responseBody = null;

    /* Get the response if the new page was created successfully. */
    if ( responseCode == 201) {
        InputStream is = mUrlConnection.getInputStream();

        /* Verify that this byte array is big enough. */
        byte[] b1 = new byte[1024];
        StringBuffer buffer = new StringBuffer();

        /* Copy the body of the response into the new string. */
        /* Make sure the buffer is big enough. */
        while ( is.read(b1) != -1)
            buffer.append(new String(b1));

      /* When the returned data is complete, close the connection 
         and convert the byte array into a string. */
        mUrlConnection.disconnect();
        responseBody =  buffer.toString();
    }

    /* Create a new JSON object, and an object to hold the response URLs. */
    JSONObject responseObject = null;
    ApiResponse response = new ApiResponse();
    try {

        /* Store and verify the HTTP response code. */
        response.setResponseCode(responseCode);
        response.setResponseMessage(responseMessage);
        if ( responseCode == 201) {

            /* Retrieve the two URLs from the links property. */
            responseObject = new JSONObject(responseBody);
            String clientUrl = responseObject.getJSONObject(
                "links").getJSONObject("oneNoteClientUrl").getString("href");
            String webUrl = responseObject.getJSONObject(
                "links").getJSONObject("oneNoteWebUrl").getString("href");
            response.setOneNoteClientUrl(clientUrl);
            response.setOneNoteWebUrl(webUrl);
        }
    } catch (JSONException ex) {

        /* If the JSON was malformed or incomplete... */
        String msg = ex.getMessage();
        msg = msg;
    }
    return response;
}

С помощью свойств ответа ваше приложение может открыть OneNote в Интернете, как показано в следующем примере.Using the response properties, your app can open OneNote on the web, as shown in the following example.

if (response.getResponseCode() == 201) {
    Uri uriUrl = Uri.parse(response.getOneNoteWebUrl);  
    Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl); 
    startActivity(launchBrowser);
}

Кроме того, приложение может открыть клиент OneNote на устройстве с Android.Or your app can open the OneNote client on an Android device. При использовании свойства oneNoteClientUrl перед запуском намерения необходимо поместить строки GUID в фигурные скобки { }.When using the oneNoteClientUrl property, you must surround the GUID strings with braces { } before starting the Intent. В примере ниже показано, как сделать это.The following example shows how to do that.

if (response.getResponseCode() == 201) {

    // Get the URL from the OneNote API JSON response.
    String onenoteClientUrl = obtainClientLinkFromJSONResponse();
    String androidClientUrl = 
        onenoteClientUrl.replaceAll(
            "=([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})&",
            "={$1}&");

    // Open the URL: Open the newly created OneNote page.
    Uri uriUrl = Uri.parse(androidClientUrl);  
    Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl); 
    startActivity(launchBrowser);
}

См. такжеSee also