【问题标题】:Can I navigate onto the web without leaving a Capacitor application?我可以在不离开 Capacitor 应用程序的情况下导航到网络吗?
【发布时间】:2019-08-18 04:55:37
【问题描述】:

我们有一个带有 ADFS/GoogleId 登录工作流程的 Web 应用程序,该工作流程通过重定向实现。我们的应用程序重定向到登录或验证用户的 ADFS 服务器,然后链接回我们的应用程序。这在离子/电容器中可以实现吗? This page 建议导航离开您的应用应该会自动在浏览器中弹出,这就是我们看到的行为。

是否有某种方法可以将某些域注册为 Capacitor 应用程序的“一部分”,这样我们就可以在不离开 web 视图的情况下进行导航?这意味着“http://localhost”(或 ios 的“capacitor://localhost”)形式的返回 url 可以工作。

或者,如果浏览器接管了 adfs 域,我如何构建一个指向 Capacitor 应用程序的链接?

【问题讨论】:

标签: cordova ionic-framework capacitor


【解决方案1】:

您可以使用 Browser API@capacitor/browser 插件)在所谓的应用内浏览器中打开 URL:

在 Android 上,这会打开一个 Chrome WebView,在 iOS 上打开一个 SFSafariViewController,因此用户永远不会真正离开应用程序,它是一个额外的 Activity(或 ViewController),将位于应用程序的导航堆栈之上。

在插件的描述中说:

浏览器 API 可以轻松打开应用内浏览器会话以显示外部 Web 内容、处理身份验证流程等。

您也可以添加侦听器来侦听页面加载事件。

【讨论】:

    【解决方案2】:

    您可以通过在电容器.config.json 文件的server 对象中添加allowNavigation 来允许导航到某些网址

    "server": {
        // Capacitor to open URLs belonging to these hosts inside its WebView.
        "allowNavigation": [
          "example.org",
          "*.example.org",
          "192.0.2.1"
        ]
      }
    

    https://capacitor.ionicframework.com/docs/basics/configuring-your-app

    【讨论】:

    • 我知道我们可以直接在 Capacitor 中打开提供登录功能的网站,但我仍然需要在我的身份验证提供程序的控制台中的某处指向“回调 url”。如果是电容器应用程序,我可以将此回调 URL 设置为什么?
    • 这个答案不是 100% 正确的,添加这个服务器后,离子电容器同步 ios,删除它
    • 您必须编辑根capacitor.config.json。如果 ionic cli 从根文件中删除它,那么它是一个离子错误,你应该在那里报告它,而不是说我的答案不正确
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-22
    • 1970-01-01
    相关资源
    最近更新 更多