从xamarin多平台页面导航到iOS或Android页面

时间:2018-11-19 23:03:08

标签: visual-studio xamarin xamarin.ios xamarin.android auth0

我正在尝试使用Auth0:https://auth0.com/docs/quickstart/native/xamarin/01-login#handing-the-callback-url创建登录页面时遵循本教程,并注意到该教程为android和iOS创建了两个单独的登录页面,就好像它们是两个单独的应用程序/项目/解决方案一样。但是我的应用程序应该与android和iOS兼容,因此我在RoseySports.ios下创建了一个名为Login_iOS的表单页面(如屏幕截图1所示),并想对其进行测试以查看登录页面是否有效,但无法似乎找到了一种将MainPage设置为Login_iOS的方法(屏幕截图2)。我希望这样,以便如果设备运行的是iOS,它将把用户重定向到登录页面的iOS版本,反之亦然(对于Android)。很抱歉,如果我在描述问题时使用的术语不正确。我必须为iOS和android创建两个单独的登录页面的原因是因为我必须使用using Auth0.OidcClient;,因为iOS解决方案和Android解决方案有单独的Nuget程序包,当尝试将其安装时不起作用主要项目(与iOS和Android兼容的项目)。

并且请让我知道是否有一种方法可以使用Auth0在两个平台上仅创建一个登录页面。

Screenshot 1 Screenshot 2

更新:

这是我现在要做的,但是在MainPage = new RoseySports.Login_iOS();处出现错误,提示Login.iOS在RoseySports名称空间中不存在。这是其余的代码:

        `switch(Device.RuntimePlatform)
        {
            case Device.iOS:

                MainPage = new RoseySports.Login_iOS();

                    break;

            case Device.Android:

                MainPage = new Login_Page();

                break;
        }`

1 个答案:

答案 0 :(得分:1)

您有多个问题,在StackOverflow中,您不应该在一个问题中提出这些问题,而是让我们尝试解决它们:

  • 页面只是图形元素,在大多数情况下,无需在iOS和Android中实现单独的图形元素,而您的页面看起来并不适合于此
  • 通常,您可以将某些代码实现为特定于平台的代码。如果您正在使用共享项目,则可以使用conditional compiling,否则请使用dependency injection
  • 您可以使用上述某些技术来完成您想做的事情(每个平台具有不同版本的页面)