Я использую CefSharp версии 43.0.0 в большом приложении WinForms, где я передаю параметры в Карты Google, т.е. адреса источника и назначения, чтобы создать знакомую карту и пошаговые инструкции. Это работает хорошо. Однако мне нужно получить более длинный и полный URL-адрес, который пользователь обычно получает с помощью Google Maps.
Если я возьму те же параметры, т. Е. Простой источник из и пункт назначения. Чтобы обратиться и подключить его к любому другому браузеру, Google Maps вернет более длинный и более полный URL-адрес, содержащий широту и долготу. (Обратите внимание на образец, показанный ниже).
Когда я передаю параметры в Google с помощью веб-браузера Chromium (CEF), я получаю карту, но не полный URL-адрес.
Может кто-нибудь подсказать, как я могу получить нужный URL при использовании CEF? Помните, что это приложение WinForms, а не веб-приложение.
https://www.google.com/maps/dir/2230+Picton+Pkwy,+Akron,+OH+44312/1680+E+Waterloo+Rd,+Akron,+OH+44306/@41.0149182,-81.48249,14z/data=!3m1!4b1!4m13!4m12!1m5!1m1!1s0x88312b00dd84936f:0xb1901f583967068e!2m2!1d-81.467646!2d41.003081!1m5!1m1!1s0x88312bb5f325ca6b:0x48697b37d442dccf!2m2!1d-81.4676985!2d41.0246252
Вот то, что я пробовал до сих пор, как показано в следующем коде. Я передаю параметры из одной формы в форму, содержащую браузер Chromium.
Создает карту с указаниями, но не возвращает более длинный и полный URL-адрес, который я получил бы, если бы ввел те же параметры вручную в другой браузер, такой как Firefox, Chrome и т. Д.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CefSharp.WinForms;
using CefSharp;
namespace myApplication
{
public partial class myDirectionFinder : Form
{
public ChromiumWebBrowser browser;
public myDirectionFinder()
{
InitializeComponent();
CefSettings settings = new CefSettings();
if (!CefSharp.Cef.IsInitialized)//Cef can only be initialized once. Using 'Cef.IsInitialized' guards against an exception.
{
CefSharp.Cef.Initialize(settings);
}
}
private void myDirectionFinder_FormClosing(object sender, FormClosingEventArgs e)
{
browser = null;
}
private void myDirectionFinder_Load(object sender, EventArgs e)
{
browser = new ChromiumWebBrowser(txtUrlPasser.Text) { Dock = DockStyle.Fill };
txtFinalAddr.Text = "";
txtFinalAddr.Text = browser.Address.ToString();
pnlBrowser.Controls.Add(browser);
}
}
}