O guia de migração do SDK do Android do Azure Maps
A migração do SDK do Android do Azure Maps para o SDK da Web em um WebView envolve a transição de sua exibição de mapa existente de uma implementação nativa para um mapa baseado na Web usando o SDK da Web do Azure Maps. Este guia mostra como migrar seu código e recursos do SDK do Android para o SDK da Web.
Nota
Aposentadoria do SDK do Android do Azure Maps
O SDK nativo do Azure Maps para Android foi preterido e será desativado em 31/03/25. Para evitar interrupções de serviço, migre para o SDK da Web do Azure Maps até 31/03/25.
Pré-requisitos
Para usar o controle de mapa em uma página da Web, você deve ter um dos seguintes pré-requisitos:
- Uma conta do Azure Maps.
- Uma chave de assinatura ou credenciais do Microsoft Entra. Para obter mais informações, consulte Opções de autenticação.
Criar um WebView
Adicione um WebView se o seu aplicativo Android não tiver um. Faça isso adicionando o WebView
elemento ao seu layout XML ou programaticamente em seu código Java. Certifique-se de que está configurado para ocupar a área desejada do seu layout.
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</androidx.coordinatorlayout.widget.CoordinatorLayout>
Habilite o acesso à Internet adicionando permissões no AndroidManifest.xml.
<uses-permission android:name="android.permission.INTERNET" />
Na sua atividade ou fragmento, inicialize o JavaScript e ative-o WebView
atualizando as configurações. Carregue o arquivo HTML que contém o código do Web SDK. Você pode carregá-lo da pasta de ativos ou de uma URL remota.
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import android.webkit.WebSettings;
import android.webkit.WebView;
public class MainActivity extends AppCompatActivity {
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = findViewById(R.id.webView);
// Enable JavaScript
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
// Load local HTML file from /src/main/assets/map.html
webView.loadUrl("file:///android_asset/map.html");
}
}
Configurar um mapa com o SDK da Web do Azure Maps
No arquivo HTML, inicialize um mapa com sua chave de assinatura. Substitua <YOUR_SUBSCRIPTION_KEY>
pela sua chave real.
<!DOCTYPE html>
<html>
<head>
<title>Azure Maps</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- Add references to the Azure Maps Map control JavaScript and CSS files. -->
<link rel="stylesheet" href="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.css" type="text/css"/>
<script src="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.js"></script>
<style>
html,
body,
#map {
margin: 0;
height: 100%;
width: 100%;
}
body {
display: flex;
flex-direction: column;
}
main {
flex: 1 1 auto;
}
</style>
<script type="text/javascript">
// Create an instance of the map control.
function InitMap() {
var map = new atlas.Map("map", {
center: [-122.33, 47.6],
zoom: 12,
authOptions: {
authType: "subscriptionKey",
subscriptionKey: "<YOUR_SUBSCRIPTION_KEY>"
}
});
// Wait until the map resources are ready.
map.events.add("ready", function () {
// Resize the map to fill the container.
map.resize();
});
}
</script>
</head>
<body onload="InitMap()">
<main>
<div id="map"></div>
</main>
</body>
</html>
Salve e execute o aplicativo. Um mapa aparecerá dentro de um WebView. Adicione todos os recursos ou funcionalidades necessários do SDK da Web. Para obter mais informações, consulte Documentação do Azure Maps e Exemplos do Azure Maps.
Comunicação entre código nativo e WebView (opcional)
Para habilitar a comunicação entre seu aplicativo Android e o WebView, você pode usar o método WebView addJavascriptInterface
para expor um objeto Java ao JavaScript em execução no WebView. Ele permite que você chame métodos Java a partir do seu código JavaScript. Para obter mais informações, consulte WebView na documentação do Android.
Limpar implementação de mapa nativo
Remova o código relacionado ao SDK nativo do Azure Maps para Android, incluindo dependências e código de inicialização relacionado ao com.azure.android:azure-maps-control
.
Testar
Teste seu aplicativo completamente para garantir que a migração foi bem-sucedida. Verifique se há problemas relacionados à funcionalidade do mapa, interações do usuário e desempenho.
Próximos passos
Saiba como adicionar mapas a aplicações Web e móveis utilizando a biblioteca JavaScript do lado do cliente do Controlo de Mapas no Azure Maps: