Ouvrir le client OneNoteOpen the OneNote client

Vous pouvez utiliser la propriété links d’une page ou d’un bloc-notes pour ouvrir une application OneNote à une page particulière ou sur un bloc-notes particulier.You can use the links property of a page or notebook to open a OneNote application to a particular page or notebook.

La propriété links est un objet JSON qui contient deux URL.The links property is a JSON object that contains two URLs. Les URL ouvrent la page ou le bloc-notes dans l’application cliente OneNote ou dans OneNote sur le Web.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

    • Ouvre le client OneNote s’il est déjà installé sur l’appareil.Opens the OneNote client if it is already installed on the device. Cette URL comprend le préfixe onenote.This URL includes the onenote prefix.
    • Ouvre la version spécifique de la langue si elle est installée sur l’appareil.Opens the language-specific version if one is installed on the device. Dans le cas contraire, elle utilise le paramètre de langue de la plateforme.Otherwise, uses the platform language setting.
  • oneNoteWebUrloneNoteWebUrl

    • Ouvre OneNote sur le Web si le navigateur par défaut de l’appareil le prend en charge.Opens OneNote on the web if the default browser on the device supports it.
    • Utilise le paramètre de langue du navigateur.Uses the browser language setting.

L’API OneNote renvoie la propriété links dans la réponse HTTP pour les opérations suivantes :The OneNote API returns the links property in the HTTP response for the following operations:

Les exemples suivants indiquent comment vérifier le code d’état de la réponse, analyser le fichier JSON pour extraire les URL, puis ouvrir le client 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.

Exemple iOSiOS example

L’exemple suivant obtient les URL du client OneNote à partir de la réponse JSON.The following example gets the OneNote client URLs from the JSON response. La bibliothèque AFNetworking (https://afnetworking.com/) est utilisée pour extraire les deux URL.It uses the AFNetworking library (https://afnetworking.com/) to extract the two URLs. Dans l’exemple, created est un pointeur vers l’objet ONSCPSStandardResponse utilisé pour stocker les valeurs de réponse et responseObject contient le fichier JSON analysé.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];
                  }
            }
      }

Une fois que vous avez analysé les URL de la réponse, vous pouvez ouvrir OneNote en utilisant le code suivant.After you parse the URLs from the response, you can open OneNote by using the following code. Utilisez oneNoteClientUrl pour ouvrir le client OneNote installé ou oneNoteWebURL pour ouvrir OneNote sur le Web.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];

Exemple AndroidAndroid example

Tout d’abord, vérifiez le code d’état de succès, puis analysez le fichier JSON.First, check for the success status code, and then parse the JSON. L’exemple suppose qu’une demande POST a été envoyée et recherche donc un code d’état 201 Created.The example assumes a POST request was sent, so it checks for a 201 Created status code. Si vous avez exécuté une demande GET, recherchez plutôt un code d’état 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;
}

À l’aide des propriétés de la réponse, votre application peut ouvrir OneNote sur le Web, comme illustré dans l’exemple suivant.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);
}

Votre application peut également ouvrir le client OneNote sur un appareil Android.Or your app can open the OneNote client on an Android device. Lorsque vous utilisez la propriété oneNoteClientUrl, vous devez placer les chaînes GUID entre accolades { } avant de lancer la tentative.When using the oneNoteClientUrl property, you must surround the GUID strings with braces { } before starting the Intent. L’exemple suivant montre comment procéder.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);
}

Voir aussiSee also