Table of contents
TOC
Inhaltsverzeichnis reduzieren
Inhaltsverzeichnis erweitern
Zuletzt aktualisiert: 25.07.2018

Öffnen der OneNote-Clients

Gilt für: Privatanwender-Notizbücher auf OneDrive | Enterprise-Notizbücher auf Office 365

Sie können die Links-Eigenschaft einer Seite oder eines Notizbuch verwenden, um eine OneNote-Anwendung für eine bestimmte Seite oder ein Notizbuch zu öffnen.

Die Links-Eigenschaft ist ein JSON-Objekt, das zwei URLs enthält:

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

Die URLs öffnen die Seite oder das Notizbuch in der systemeigenen OneNote-Clientanwendung oder in OneNote Online.

oneNoteClientUrl

Öffnet den systemeignen Client, wenn er bereits auf dem Gerät installiert ist. Diese URL enthält das Präfix onenote.
Die sprachspezifische Version wird geöffnet, sofern diese auf dem Gerät installiert ist. Andernfalls wird die Spracheinstellung der Plattform verwendet.

oneNoteWebUrl

Öffnet OneNote Online, wenn der Standardbrowser auf dem Gerät OneNote Online unterstützt.
Verwendet die Einstellung für die Browsersprache.


Die OneNote-API gibt die links-Eigenschaft in der HTTP-Antwort für die folgenden Vorgänge zurück:

  • Erstellen einer Seite durch Senden einer POST pages-Anforderung
  • Erstellen eines Notizbuchs durch Senden einer POST notebooks -Anforderung
  • Abrufen von Seitenmetadaten durch Senden einer GET pages- oder GET pages/{id}-Anforderung
  • Abrufen von Seitenmetadaten durch Senden einer GET notebooks- oder GET notebooks/{id}-Anforderung

Die folgenden Beispiele zeigen, wie man den Statuscode der Antwort überprüft, den JSON analysiert, um die URLs zu extrahieren, und dann den Client öffnet.

iOS-Beispiel

Im folgenden Beispiel werden die OneNote-Client-URLs aus der JSON-Antwort abgerufen. Es verwendet die AFNetworking-Bibliothek (http://afnetworking.com/), um die beiden URLs zu extrahieren. Im Beispiel ist erstellt ein Zeiger auf das ONSCPSStandardResponse-Objekt, das zum Speichern der Antwortwerte verwendet wird, und responseObject enthält den analysierten 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];
                  }
            }
      }

Nachdem Sie nun die URLs der Antwort analysiert haben, können Sie OneNote mit dem folgenden Code öffnen. Verwenden Sie oneNoteClientUrl, um den installierten OneNote-Client zu öffnen oder oneNoteWebURL, um OneNote Online zu öffnen.

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

Android-Beispiel

Suchen Sie zunächst nach dem für den Erfolg-Statuscode und analysieren Sie dann die JSON. Das Beispiel geht davon aus, dass eine POST-Anfrage gesendet wurde, also wird nach einem 201-Statuscode gesucht. Wenn Sie eine GET-Anfrage gestellt haben, suchen Sie stattdessen nach einem 200-Statuscode.

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;
}

Mit den Antworteigenschaften kann Ihre App OneNote Online öffnen (siehe folgendes Beispiel).

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

Oder Ihre Anwendung kann den systemeigenen OneNote-Client auf einem Android-Gerät öffnen. Wenn Sie die Eigenschaft oneNoteClientUrl verwenden, müssen Sie die GUID-Zeichenfolgen mit Klammern { } umgeben, bevor Sie den Intent starten. Im folgenden Beispiel wird dieser Vorgang erklärt.

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);
}

Zusätzliche Ressourcen

© 2018 Microsoft