私はXamarinフォーム(クロスプラットフォーム)を使用してアプリケーションを開発しています。アプリからWazeアプリケーションを開き、緯度と経度を渡しています。
これはWazeをとてもうまく開くが、Wazeを開いただけで、渡されたアドレスまたは緯度/経度を見つけようとしなかった。
Wazeディープリンク
どのように私はそれを動作させるためのアイデアですか?
--- EDIT ---
は最後に、それは私が所望の結果を達成するために管理し、@SushiHangoverからのアイデアを使用して、働いていました。最終的なコードはここにある:
public static Task<bool> OpenWazeAndroid(decimal latitude, decimal longitude, string address)
{
if (IsAndroid())
{
try
{
var lat = latitude.ToString().Replace(",",".");
var longi = longitude.ToString().Replace(",", ".");
const string wazePrefix = "waze://";
Android.Content.Intent intent = new Android.Content.Intent(Android.Content.Intent.ActionView, Android.Net.Uri.Parse(wazePrefix));
string wazeURL = ("https://waze.com/ul?q=" + address + "&ll=" + lat + "," + longi + "&z=8&navigate=yes");
wazeURL = wazeURL.Replace(" ", "%20");
var resolveInfo = Android.App.Application.Context.PackageManager.ResolveActivity(intent, 0);
Android.Net.Uri wazeUri;
if (resolveInfo != null)
{
wazeUri = Android.Net.Uri.Parse(wazeURL);
}
else
{
wazeUri = Android.Net.Uri.Parse("market://details?id=com.waze");
}
intent.AddFlags(Android.Content.ActivityFlags.NewTask);
intent.SetData(wazeUri);
Android.App.Application.Context.StartActivity(intent);
return Task.FromResult(true);
}
catch (Exception ex)
{
App.Shell.Alert("Erro ao abrir o Waze.\n" + ex.Message);
return Task.FromResult(false);
}
}
return Task.FromResult(false);
}
。たとえば、 "https://waze.com/ul?q=Hawaii"で開くと、Wazeは動作しますか? –
私はまた、アドレスで試して、それは同じ行動をした、ちょうどオープンアプリ、場所を探していない。 –