webview应用中的谷歌地图必须在谷歌地图应用程序中

时间:2013-11-28 11:50:20

标签: android google-maps webview

我有一个webview应用程序。但我想通过导航在其中制作路线描述。

当我有谷歌链接时,我想打开谷歌地图APP。现在它在WebView中打开了。

我该怎么做?

到目前为止这是我的应用程序:

public class FullscreenActivity extends Activity {

private WebView webView;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_fullscreen);

    webView = (WebView) findViewById(R.id.webView);
    webView.setWebViewClient(new myWebClient());
    webView.loadUrl("http://www.mywebsite.nl");
    webView.setVerticalScrollBarEnabled(false);
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
}



public class myWebClient extends WebViewClient
{
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
    // TODO Auto-generated method stub
    super.onPageStarted(view, url, favicon);
}

@Override
 public boolean shouldOverrideUrlLoading(WebView view, String url) {

 if (url.startsWith("tel:")) { 
         Intent intent = new Intent(Intent.ACTION_DIAL,
                 Uri.parse(url)); 
         startActivity(intent); 
 }else if(url.startsWith("http:") || url.startsWith("https:")) {
     view.loadUrl(url);
 }
 return true;

    }
}

    public static void maps(Activity activity, String address) {

   try {

    Intent intent = new Intent(Intent.ACTION_VIEW,         Uri.parse("http://maps.google.com/maps?q=" + address));
    activity.startActivity(intent);

} catch (ActivityNotFoundException e) {
    Toast.makeText(activity, activity.getString(R.id.webView), Toast.LENGTH_SHORT).show();
}

public static void navigation(Activity activity, String address) {

try {

    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("google.navigation:q=" + address));
    activity.startActivity(intent);

} catch (ActivityNotFoundException e) {

    Toast.makeText(activity, activity.getString(R.id.webView), Toast.LENGTH_SHORT).show();
}
 }

public boolean onKeyDown(int keyCode, KeyEvent event)
{
    if ((keyCode == KeyEvent.KEYCODE_BACK) && webView.canGoBack()) {
        webView.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
   }

感谢名单, 马文

1 个答案:

答案 0 :(得分:0)

您可以使用此方法启动地图或导航应用程序:

public static void maps(Activity activity, String address) {

    try {

        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?q=" + address));
        activity.startActivity(intent);

    } catch (ActivityNotFoundException e) {
        Toast.makeText(activity, activity.getString(R.string.error_no_app_found), Toast.LENGTH_SHORT).show();
    }
}

public static void navigation(Activity activity, String address) {

    try {

        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("google.navigation:q=" + address));
        activity.startActivity(intent);

    } catch (ActivityNotFoundException e) {
        Toast.makeText(activity, activity.getString(R.string.error_no_app_found), Toast.LENGTH_SHORT).show();
    }
}