2016-08-24 5 views
0

J'ai créé ma toute première application iOS, mais j'ai un problème avec le clavier. Vous ne pouvez pas cacher le clavier. La barre d'accessoires (avec fermeture/précédente/flèche suivante) n'est pas visible.Ionic 2 InAppBrowser cache la barre d'accessoires par défaut

Et un autre problème est qu'il ne se ferme pas automatiquement après la connexion. Ainsi, l'utilisateur se retrouve avec un clavier sur tout son écran. Il se ferme uniquement lorsque vous naviguez à l'intérieur du site.

le code est assez facile si, l'application ouvre l'InAppBrowser et charge un site où vous devez vous connecter.

Login

After login

Exemple de code:

import {Component, ViewChild} from '@angular/core'; 
import {ionicBootstrap, Platform, MenuController, Nav} from 'ionic-angular'; 
import {StatusBar} from 'ionic-native'; 
import {HelloIonicPage} from './pages/hello-ionic/hello-ionic'; 
import {ListPage} from './pages/list/list'; 
import {InfoPage} from './pages/info/info'; 
import {InAppBrowser} from 'ionic-native'; 
import {Splashscreen} from 'ionic-native'; 
import {Keyboard} from 'ionic-native'; 

@Component({ 
    templateUrl: 'build/app.html' 
}) 
class MyApp { 
    @ViewChild(Nav) nav: Nav; 

    // make HelloIonicPage the root (or first) page 
    rootPage: any = HelloIonicPage; 
    pages: Array<{title: string, component: any}>; 
    inAppBrowserRef; 

    constructor(
    private platform: Platform, 
    private menu: MenuController 
) { 
    document.addEventListener('resume',() => { 
     console.log("App has been resumed, reopen InAppBrowser url"); 
     this.openInAppBrowser(); 
    }); 
    this.initializeApp(); 

    // set our app's pages 
    this.pages = [ 
     { title: 'Launch', component: HelloIonicPage }, 
     { title: 'Info', component: InfoPage }, 
    ]; 
    } 

    initializeApp() { 
    this.platform.ready().then(() => { 
     // Okay, so the platform is ready and our plugins are available. 
     // Here you can do any higher level native things you might need. 
     StatusBar.styleDefault(); 
     //Show previous/next/done button on keyboard 
     this.openInAppBrowser(); 
    }); 
    } 

    openInAppBrowser() { 
    //Directly load website 
    this.inAppBrowserRef = InAppBrowser.open("http://ws001.domeassistance.be:50001/", "_blank", "location=no,fullscreen=yes,toolbar=no,clearcache=yes,clearsessioncache=yes"); 
    } 
} 

ionicBootstrap(MyApp); 

Toute aide?

// Un autre mystère: lors du débogage avec Phonegap sur iOS, j'obtiens la barre d'accessoires, mais pas quand je l'ai construit dans une vraie application ???

// Edit2: Si je mets l'emplacement = oui, alors le Accessorybar arrive, mais je vois une url méchant en bas de la page qui est pas ce que je veux bien sûr ...

+0

Vous pouvez même essayer sur https://itunes.apple.com/us/app/dome-assistance-app/id1135786020?mt=8 – saibot

Répondre

0

J'utilise _système à la place de _blank. Ensuite, j'ai la barre supérieure du clavier avec AutoFill et bouton terminé.

openInAppBrowser() { 
    this.inAppBrowserRef=InAppBrowser.open("http://ws001.domeassistance.be:50001/", "_system", "location=no,fullscreen=yes,toolbar=no,clearcache=yes,clearsessioncache=yes"); 
} 
+0

Je vais faire un essai, merci d'avance – saibot

+0

Malheureusement, l'utilisation de _system ouvre le navigateur safari. Je dois utiliser _blank pour que l'utilisateur ne remarque pas qu'il ouvre un site web. – saibot