android - 如何使用webview打开嵌入式URL

时间:2012-02-29 06:51:40

标签: android webview

在我的应用程序中,我想在webview中使用Google地图的嵌入网址显示两个地理点之间的路线。但它不起作用。在浏览器中它显示方向页面,但在设备中显示标记页面。

Code:

公共类android_testing扩展Activity {

public WebView webview;     
protected ProgressDialog web_pd;
final Handler rb_web_pd_Handler = new Handler();    

@Override
public void onCreate(Bundle icicle) 
{
    super.onCreate(icicle);                   
    setContentView(R.layout.main);        

    webview = (WebView)findViewById(R.id.wv_direction);  
    webview.getSettings().setJavaScriptEnabled(true);
    webview.getSettings().setPluginsEnabled(true);
    webview.getSettings().setDomStorageEnabled(true);
    webview.getSettings().setBuiltInZoomControls(true);
    webview.getSettings().setSupportZoom(true);
    webview.getSettings().setAllowFileAccess(true);

    web_pd = ProgressDialog.show(android_testing.this, "", "Please wait...", true);
    Thread t = new Thread() 
    {
        public void run() 
        {               
            rb_web_pd_Handler.post(checked_LoginResp);
        }                                               
    };
    t.start();

    webview.setWebViewClient(new WebViewClient() 
    {
        @Override
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
        {
            // Handle the error
        }

        public boolean shouldOverrideUrlLoading(WebView view, String url) {

                view.loadUrl(url);

            return true;
        }
    });
    float source_lat = 17.493133f;
    float source_long = 78.398438f;
    float dest_lat = 17.444992f;
    float dest_long = 78.379898f;
    String page_url ="http://maps.google.com/maps?daddr="+dest_lat+","+dest_long+"&saddr="+source_lat+","+source_long+"&output=embed";             
    System.out.println("URL:"+page_url);       
    webview.loadUrl(page_url);      
}

 final Runnable checked_LoginResp = new Runnable()
 {
     public void run()
     {
         try
         {
             webview.setWebChromeClient(new WebChromeClient() 
             {
                 public void onProgressChanged(WebView view, int progress)
                 {
                     if(progress == 100)
                     {
                         web_pd.dismiss();  
                     }
                 }
             });
         } 
         catch(Exception e)
         {
             e.printStackTrace();
         }
     }      
 };          }

在浏览器中

enter image description here

但在设备中

enter image description here

1 个答案:

答案 0 :(得分:0)

要简单地显示包含2个位置的Google地图,无需使用单独的活动和webview,只需调用如下代码

float source_lat = 17.493133f;
    float source_long = 78.398438f;
    float dest_lat = 17.444992f;
    float dest_long = 78.379898f;

String sourcelatitudeString=source_lat.toString();
String sourcelongitudeString=source_long.toString();


Intent intent = new Intent(android.content.Intent.ACTION_VIEW, 
Uri.parse("http://maps.google.com/maps?saddr="+sourcelatitudeString+","+sourcelongitudeString+"&daddr="+dest_lat+","+dest_long+""));
startActivity(intent);