Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode usar a propriedade links de uma página ou de um bloco de anotações para abrir um aplicativo do OneNote em determinada página ou bloco de anotações.
A propriedade links é um objeto JSON que contém duas URLs. Os URLs abrem a página ou bloco de notas na aplicação cliente do OneNote ou no OneNote na Web.
{
"links": {
"oneNoteClientUrl": {
"href": "onenote:https://..."
},
"oneNoteWebUrl": {
"href": "https://..."
}
}
}
oneNoteClientUrl
- Abre o cliente do OneNote, caso já esteja instalado no dispositivo. Essa URL inclui o prefixo onenote.
- Abre a versão de idioma específico, caso esteja instalada no dispositivo. Caso contrário, usa a configuração de idioma da plataforma.
oneNoteWebUrl
- Abre OneNote na Web se o browser predefinido no dispositivo o suportar.
- Usa a configuração de idioma do navegador.
A API do OneNote retorna a propriedade links na resposta HTTP para as seguintes operações:
Crie uma página enviando uma solicitação
POST pages.Crie um bloco de anotações enviando uma solicitação
POST notebooks.Obtenha os metadados de página enviando uma solicitação
GET pagesouGET pages/{id}.Obtenha metadados de bloco de anotações enviando uma solicitação
GET notebooksouGET notebooks/{id}.
Os exemplos a seguir mostram como verificar o código de status da resposta, analisar o JSON para extrair as URLs e abrir o cliente do OneNote.
Exemplo do iOS
O exemplo a seguir obtém as URLs de cliente do OneNote da resposta JSON. Utiliza a biblioteca AFNetworking (https://afnetworking.com/) para extrair os dois URLs. No exemplo, created é um ponteiro para o objeto ONSCPSStandardResponse usado para armazenar os valores de resposta, e responseObject contém o JSON analisado.
/* 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];
}
}
}
Após analisar as URLs de resposta, você poderá abrir o OneNote usando o código a seguir. Utilize oneNoteClientUrl para abrir o cliente do OneNote instalado ou oneNoteWebURL para abrir OneNote na Web.
NSURL *url = [NSURL URLWithString:standardResponse.oneNoteWebUrl];
[[UIApplication sharedApplication] openURL:url];
Exemplo do Android
Primeiro, verifique se há o código de status de sucesso. Em seguida, analise o JSON. O exemplo pressupõe que uma solicitação POST tenha sido enviada. Portanto, verifica se há um código de status 201 Created. Se você tiver feito uma solicitação GET, verifique se há um código de status 200 em vez disso.
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;
}
Com as propriedades de resposta, a sua aplicação pode abrir OneNote na Web, conforme mostrado no exemplo seguinte.
if (response.getResponseCode() == 201) {
Uri uriUrl = Uri.parse(response.getOneNoteWebUrl);
Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl);
startActivity(launchBrowser);
}
Ou o aplicativo pode abrir o cliente do OneNote em um dispositivo Android. Ao usar a propriedade oneNoteClientUrl, você deve colocar as cadeias de caracteres de GUID entre chaves { } antes de iniciar a Intenção. O exemplo a seguir mostra como fazer isso.
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);
}