【问题标题】:Navigating from xamarin multi-platform page to iOS or android page从 xamarin 多平台页面导航到 iOS 或 android 页面
【发布时间】:2018-11-21 19:02:51
【问题描述】:

我正在尝试按照本教程使用 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 版本,反之亦然。抱歉,如果我在描述我的问题时没有使用正确的术语。我必须为 iOS 和 android 创建两个单独的登录页面的原因是因为我必须使用using Auth0.OidcClient;,因为 iOS 解决方案和 Android 解决方案有单独的 Nuget 包,当尝试将其放在主页面时不起作用项目(同时兼容 iOS 和 Android)。

如果有办法使用 Auth0 为两个平台创建一个登录页面,请告诉我。

更新:

这就是我现在所做的,但我在MainPage = new RoseySports.Login_iOS(); 收到一个错误,指出命名空间 RoseySports 中不存在 Login.iOS。这是剩下的代码:

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

                MainPage = new RoseySports.Login_iOS();

                    break;

            case Device.Android:

                MainPage = new Login_Page();

                break;
        }`

【问题讨论】:

  • 有很多不同的方法来解决这个问题,但您可以为 LoginPage 创建一个自定义渲染器,然后提供适当的平台实现

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


【解决方案1】:

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

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

【讨论】:

  • 对不起,如果我的措辞不正确,我的意思是问题只是如何将 MainPage 切换到 Login_iOS 页面,反之亦然,用于使用 Android 时。而且我忘了提到,我必须为 iOS 和 android 创建两个单独的登录页面的原因是因为我必须使用 using Auth0.OidcClient; 在尝试将其放在主项目上时不起作用(一个兼容两个 iOS和安卓)
  • 你能解释一下你最后一点的意思吗? ("你也可以创建一个 LoginPage 属性...")
  • 我已经更新了答案以包含一个新链接。所有你需要知道的是那些链接的文章。我不确定你应该应用哪一个,这取决于你是如何设置项目的。
  • 谢谢,但我认为它们中的任何一个都不适用。我基本上是在寻找MainPage = 的内容,如果正在使用 iOS 设备,它将调用 Login_iOS。如果我使用#if __IOS__,我仍然不知道为 MainPage 放置什么,因为我不知道如何将其导航到解决方案的 iOS 部分
  • 由于某种原因,当我尝试在 app.xaml.cs 中使用 #if __IOS__ 时,它会使我在它下面使用的代码变成深绿色,就像你使用 // 和不尝试运行它
猜你喜欢
  • 2019-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多