Login ionic3打开不带地址栏和工具栏的外部url并关闭按钮

Login ionic3打开不带地址栏和工具栏的外部url并关闭按钮,login,webview,inappbrowser,ionic3,external-url,Login,Webview,Inappbrowser,Ionic3,External Url,我的应用需要一个来自外部url的登录页面 我认为的登录逻辑是: 台阶 启动ionic时打开外部url 用户登录后,使用深度链接返回内部应用程序(例如:myapp://main) 我测试了第2步,这是深度链接。效果很好 所以,我现在必须做第一步 首先,我使用iframe进行了测试。 并且get拒绝在帧中显示“https:…”,因为它将“X-frame-Options”设置为“deny”。错误。似乎这需要一个服务器端配置。但无论如何,我们不想用这种方式iframe感觉像是黑客 其次,我尝试了loca

我的应用需要一个来自外部url的登录页面

我认为的登录逻辑是:

台阶

  • 启动ionic时打开外部url
  • 用户登录后,使用深度链接返回内部应用程序(例如:myapp://main)
  • 我测试了第2步,这是深度链接。效果很好

    所以,我现在必须做第一步

    首先,我使用
    iframe
    进行了测试。 并且get
    拒绝在帧中显示“https:…”,因为它将“X-frame-Options”设置为“deny”。
    错误。似乎这需要一个服务器端配置。但无论如何,我们不想用这种方式
    iframe
    感觉像是黑客

    其次,我尝试了
    location.href=this.loginUrl。
    在chrome浏览器中运行良好,但当我内置iOS模拟器时,我看到地址栏、工具栏和关闭按钮。
    我不喜欢这样,因为我不希望用户关闭登录页面或更改url地址

    第三,尝试
    窗口。打开(this.loginUrl,'.\u self',location=no')
    。 和第二个结果相同

    第四,尝试在应用程序浏览器中使用ionic版本的
    。
    但结果与第二和第三次相同。
    它仍然会打开一个带有地址栏、工具栏的浏览器,甚至会显示“返回myApp”。所以用户会觉得这个应用程序已经过时了。
    ,人们仍然在寻找解决方案


    花了一天的时间后,我甚至不知道是否有可以尝试的选择。

    我可以通过这样做来解决。但在实际设备中。 Xcode iPhone模拟器没有开放的应用程序内浏览器,而是内置浏览器

    browser:any;
    
    this.platform.ready().then(() => {
            this.browser = this.iab.create(this.loginUrl, '_blank', 'location=no,toolbar=no'); 
        });
    

    您可以通过在AppBrowser中安装名为cordova插件的cordova插件来解决此问题。执行以下命令:

    ionic plugin add cordova-plugin-inappbrowser
    npm install --save @ionic-native/in-app-browser
    
    在你的app.module.ts上添加

    import { InAppBrowser } from '@ionic-native/in-app-browser';
    
    并将以下内容添加到app.module.ts中的提供商

        providers: [
        StatusBar,
        SplashScreen,
        InAppBrowser,
        {provide: ErrorHandler, useClass: IonicErrorHandler}
      ]
    
    然后在你的家里

    import { InAppBrowser } from '@ionic-native/in-app-browser';
    
    然后像这样将其注入构造函数

        constructor(public navCtrl: NavController, private iab: InAppBrowser) {
    
      }
    
    然后添加以下方法

     ionViewDidLoad(){
        this.iab.create('url', '_self', { location: 'no' }); }
    
    检查此插件的不同选项

    要删除地址栏,请使用以下选项:

    location: Set to yes or no to turn the InAppBrowser's location bar on or off.
    

    您可以尝试
    toolbar=no
    查看IOS选项,我设置了位置:“no”,然后它隐藏了地址栏,但页面导航不起作用。我有WordPress网站。