要打开Android应用程序的网址

时间:2016-07-29 14:24:15

标签: android intentfilter deep-linking

我目前正在使用Xamarin Forms开发一个应用程序,我希望能够从一个简单的URL打开它。

在iOS部分,这个工作正常,但在Android上,当我尝试从chrome访问我的网址时没有任何反应。

这是我的MainActivity:

[活动(标签="储物柜",Icon =" @ drawable / logo",主题=" @ style / MyTheme",MainLauncher = true,ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]

[IntentFilter(new[] { Android.Content.Intent.ActionView },
              DataScheme = "http",
              DataHost = "random.com",
              DataPathPrefix = "/test",
              Categories = new[] { Android.Content.Intent.CategoryDefault, Android.Content.Intent.CategoryBrowsable })]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
    protected override void OnCreate(Bundle bundle)
    {
        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;

        base.OnCreate(bundle);

        UserDialogs.Init(this);

        global::Xamarin.Forms.Forms.Init(this, bundle);

        App _app = new App();
        LoadApplication(_app);

        if (Intent.HasExtra("al_applink_data"))
        {

            var appLinkData = Intent.GetStringExtra("al_applink_data");

            var alUrl = new Rivets.AppLinkUrl(Intent.Data.ToString(), appLinkData);

            // InputQueryParameters will contain our product id
            if (alUrl != null && alUrl.InputQueryParameters.ContainsKey("id"))
            {
                var id = alUrl.InputQueryParameters["id"];
                NavigationPage nav = _app.MainPage as NavigationPage;
                InputPage page = nav.Navigation.NavigationStack[0] as InputPage;
                page.GenerateContentFromUri(id);
            }
        }
    }
}

当我尝试从Chrome应用程序到达http://random.com/test网址时,通常应该建议从应用程序打开链接或继续使用chrome,但没有任何事情发生,它只是进入网站,就好像意图一样过滤器被忽略了。

你们知道我可能会缺少什么吗?

1 个答案:

答案 0 :(得分:1)

没关系,一切都很好,我只是想直接在chrome导航栏中输入我的网址。

要从网址打开应用程序,应该点击链接以使其正常工作