Guia de início rápido: adicionando classificações (HTML)
[ Este artigo destina-se aos desenvolvedores do Windows 8.x e do Windows Phone 8.x que escrevem aplicativos do Windows Runtime. Se você estiver desenvolvendo para o Windows 10, consulte documentação mais recente ]
Use o controle Rating para deixar que o usuário avalie algo clicando em um ícone que representa uma classificação. Este guia de início rápido mostra como adicionar o controle de classificações ao seu aplicativo da Windows Store em JavaScript.
Pré-requisitos
Nós supomos que você possa criar um aplicativo da Windows Store básico em JavaScript que use controles WinJS. Para aprender a usar os controles WinJS, veja Guia de início rápido: adicionando controles e estilos WinJS.
Criar um controle de classificações
Para criar um controle Rating, crie um elemento div e defina a propriedade data-win-control como "WinJS.UI.Rating". Aqui está um exemplo de como criar um controle de classificações básico:
<div id="ratingControl" data-win-control="WinJS.UI.Rating"></div>
Observação Para que o controle seja instanciado, a sua página deve incluir arquivos JavaScript WinJS, e você deve chamar a função WinJS.UI.processAll em seu code-behind. Para saber mais, veja Guia de início rápido: adicionando controles e estilos WinJs.
Definindo a classificação média e a classificação máxima
A propriedade averageRating especifica a classificação média do item sendo classificado. (Como você determina a classificação média para o item depende de você). Se você definir a propriedade averageRating, o controle Rating a exibe até que o usuário selecione a sua própria classificação. O exemplo a seguir define a averageRating como 3,4.
<div id="ratingControl" data-win-control="WinJS.UI.Rating"
data-win-options="{averageRating : 3.4}"></div>
A propriedade maxRating especifica a classificação máxima possível. O valor padrão é 5. O exemplo em seguida define maxRating como 7; quando o controle é exibido, ele mostra 7 estrelas em vez de 5.
<div id="ratingControl" data-win-control="WinJS.UI.Rating"
data-win-options="{averageRating : 3.4, maxRating : 7}"></div>
Obtendo a classificação de um usuário
Quando o usuário escolher uma classificação, ele dispara o evento change. Você pode obter a classificação do usuário com o valor da propriedade userRating.
Este exemplo usa o manipulador de evento ativado da página inicial para adicionar um manipulador de evento change ao controle Rating. (Para saber mais sobre o melhor lugar para anexar eventos, veja Guia início rápido: adicionando controles e manipulando eventos.)
(function () {
"use strict";
var app = WinJS.Application;
// This function responds to all application activations.
app.onactivated = function (eventObject) {
if (eventObject.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch) {
// TODO: Initialize your application here.
WinJS.UI.processAll()
.done(function () {
// Get the rating control
var ratingControl = document.getElementById("ratingControl").winControl;
ratingControl.addEventListener("change", changeRating);
});
}
};
app.start();
})();
A função de manipulador de evento do exemplo, changeRating
, recupera a classificação do usuário e a armazena.
function changeRating(ev) {
var ratingControl = ev.target.winControl;
if (ratingControl) {
if (ratingControl.userRating != 0) {
// Put your code here to save user rating and re-calculate average rating.
WinJS.Application.sessionState.userRating = ratingControl.userRating;
var appData = Windows.Storage.ApplicationData.current;
var roamingValues = appData.roamingSettings.values;
// Write a setting
roamingValues.insert("userRating", ratingControl.userRating);
} else {
// Put your code here to delete user rating.
}
}
}
O exemplo a seguir modifica o manipulador de evento ativado mostrado anteriormente para que ele recupere a classificação do usuário armazenada e use-a para definir o controle Rating.
(function () {
"use strict";
var app = WinJS.Application;
// This function responds to all application activations.
app.onactivated = function (eventObject) {
if (eventObject.detail.kind === Windows.ApplicationModel.Activation.ActivationKind.launch) {
// TODO: Initialize your application here.
WinJS.UI.processAll()
.done(function () {
// Get the rating control
var ratingControl = document.getElementById("ratingControl").winControl;
// Retrieve stored state info
var appData = Windows.Storage.ApplicationData.current;
var roamingValues = appData.roamingSettings.values;
// Read a setting
var currentRating = parseFloat(roamingValues.lookup("userRating"));
if (currentRating > 0) {
ratingControl.userRating = currentRating;
}
ratingControl.addEventListener("change", changeRating);
});
}
};
function changeRating(ev) {
var ratingControl = ev.target.winControl;
if (ratingControl) {
if (ratingControl.userRating != 0) {
// Put your code here to save user rating and re-calculate average rating.
WinJS.Application.sessionState.userRating = ratingControl.userRating;
var appData = Windows.Storage.ApplicationData.current;
var roamingValues = appData.roamingSettings.values;
// Write a setting
roamingValues.insert("userRating", ratingControl.userRating);
} else {
// Put your code here to delete user rating.
}
}
}
app.start();
})();
Resumo e próximas etapas
Você aprendeu como criar um controle Rating e como armazenar e recuperar o seu userRating. Em seguida, saiba como usar melhor o controle de classificações lendo Diretrizes e lista de verificação de controles de classificações.