Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    331

    [JAVA-ANDROID] WebView e mappe di google

    Ciao a tutti, sto cercando di aprire in una WebView di un'Activity Android una pagina html che a sua volta dovrebbe aprire una mappa di google centrata in un determinato punto.
    Il problema e' che la mappa non viene visualizzata.

    Il codice scritto e' il seguente:

    cartella assets del progetto android:

    map.html

    codice:
    <html>
    	<head>
    	    <title>CAR WIDGET HTC</title>
    	
    		
    	    
    		<meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
    		<meta name="viewport" content="width=device-width, target-densityDpi=device-dpi, user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0"/>
    		<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
    		<script type="text/javascript" src="weem/json.js"></script>
    	    <script type="text/javascript" src="weem/weem-common.js"></script>
            <script type="text/javascript" src="weem/weem-cms.js"></script>
    		<script src="mapmanage.js" type="text/javascript"></script> 
    	</head>
    	<body onload="start();">
           
        <div id="mapDiv" style="display:block;">
    	Hello world!
        </div>
    
    	</body>
    </html>
    mapmanage.js

    codice:
    function start() {
    	alert('start');
    	lat = 45.1113238;
    	lon = 7.6738408;
    	
    	displayGoogleMap(14);
    	insertPIN();
    }
    
    // funzioni di gestione della mappa
    function displayGoogleMap(zoomValue) {
    	try {
    	    alert('displayGoogleMap');
    		var pos = new google.maps.LatLng(lat, lon);
    	    alert(pos);
    		var myOptions = {
    	      zoom: zoomValue,
    	      mapTypeId: google.maps.MapTypeId.ROADMAP,
    	      center: pos
    	    };
    	    googleMap = new google.maps.Map(document.getElementById("mapDiv"), myOptions);
    	}
    	catch (e) {
    		alert("Errore: "+e.message);
    	} 
    }
    
    function insertPIN() {
        alert('insertPIN');
    	if (myMarker != null && myMarker != 'undefined') {
    		// remove marker
    		myMarker.setMap(null);
    	}
    	
    	var pos = new google.maps.LatLng(lat, lon);
    	myMarker = new google.maps.Marker({
    			icon: 'img/cars156.gif',
    			map: googleMap,
    			title: '',			
    			position: pos
    		});
    	googleMap.setCenter(pos);
    }
    E infine nell'activity android nella onCreate ho implementato il seguente codice:

    codice:
    public void onCreate(Bundle savedInstanceState) {
        	Log.d(TESTER_TAG, "onCreate: start");
        	super.onCreate(savedInstanceState);
            
            setContentView(R.layout.map);
            
            try {
              myWebView = (WebView) findViewById(R.id.webview_compontent);
              webSettings = myWebView.getSettings();
              webSettings.setJavaScriptEnabled(true);
              webSettings.setCacheMode(WebSettings.LOAD_NO_CACHE);
              webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
              webSettings.setLoadsImagesAutomatically(true);
              
              myWebView.setWebViewClient(new MyWebView(this));
              myWebView.setWebChromeClient(new WebChromeClient());  
              
              myWebView.loadUrl("file:///android_asset/map.html");
            }
            catch (Exception e) {
            	Log.d(TESTER_TAG, "onCreate: WebView error: "+e.toString());	
            }
        }
    MyWebView e' la seguente:

    codice:
    public class MyWebView extends WebViewClient {
    
    	/** application context: it allows to gain access to activity object */
    	protected				Context	context;
    	
    	/**
    	 * CONSTRUCTOR
    	 */
    	public MyWebView (Context _context)
    	{
    		super();
    		this.context = _context;
    	}	
    }
    e in map.xml ho definito la WebView nel seguente modo:

    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#ffffffff"
        >
           
       <WebView  
    	    android:id="@+id/webview_compontent"
    	    android:layout_width="fill_parent" 
    	    android:layout_height="fill_parent" 
    	    android:layout_weight="1.0"   
    	/> 
    	
    </LinearLayout>
    Eseguendo l'applicazione vedo gli alert delle funzioni javascript ma la mappa non viene visualizzata, a volte compare per un brevissimo tempo l'inizio della mappa in alto ma sparisce subito!
    Cosa sto sbagliando?

    Grazie e ciao
    Sandro

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    331
    un aggiornamento.
    Per provare ho fatto aprire alla WebView il sito www.google.it e mi da pagina non disponibile mentre se navigo con il browser riesco.
    A questo punto direi che, in primis, ho un problema di connettivita' sull'Activity; cosa potrebbe essere?

    Questo e' il manifest della mia activity:

    codice:
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="it.tilab.gassave"
          android:versionCode="1"
          android:versionName="1.0">
        <application android:icon="@drawable/icon" 
                     android:label="@string/app_name">
        
           <activity android:name=".GasSave"
                     android:label="@string/app_name"
                     android:launchMode="singleTop"
                     android:configChanges="keyboardHidden|orientation">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    
        </application>
    
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.BLUETOOTH"></uses-permission>
    	<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"></uses-permission>
    	<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    	<uses-permission android:name="android.permission.ACCESS_LOCATION_UPDATES" />
    
    </manifest>
    Dove ho inserito android.permission.INTERNET per utilizzare la rete.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    331
    Dunque, ho provato a mettere
    codice:
    myWebView.loadUrl("http://www.google.it");
    al posto di
    codice:
    myWebView.loadUrl("www.google.it");
    e la pagina di google viene aperta nella WebView.

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    331
    Risolto, mancavano dei settaggi nel css, potete chiudere la discussione.
    Scusate il disturbo

    Ciao
    Sandro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.