J'ai créé l'application cordova (ios) qui appelle une page Web via inappbrowser. Mais en raison de la diminution de la vitesse dans iOS, j'ai cherché sur Google et j'ai trouvé WKWebView. J'ai installé tous les plugins pour WkWebview, mais je veux savoir comment appeler une page Web en utilisant cela? Dans Inappbrowser, j'ai utilisé ceci pour appeler la page Web,

   var url = 'http://google.com'; 
   var target = '_blank';
   var options = "location=no,closebuttoncaption=exit,toolbar=no";
   var ref = cordova.InAppBrowser.open(url, target, options);

   ref.addEventListener('loadstart', loadstartCallback);
   ref.addEventListener('loadstop', loadstopCallback);
   ref.addEventListener('loadloaderror', loaderrorCallback);
   ref.addEventListener('exit', exitCallback);

   function loadstartCallback(event) {
  console.log('Loading started: '  + event.url)
  }

  function loadstopCallback(event) {
  console.log('Loading finished: ' + event.url)
  }

  function loaderrorCallback(error) {
  console.log('Loading error: ' + error.message)
  }

   function exitCallback() {
  console.log('Browser is closed...')
  }

De même, je veux savoir s'il existe un moyen d'appeler la page Web via wkwebview?

0
Amr916 17 août 2017 à 08:43

2 réponses

Meilleure réponse

MISE À JOUR J'ai résolu les problèmes connus restants avec mon fork du plugin Cordova InAppBrowser, que j'ai réécrit pour utiliser WKWebView au lieu de UIWebView (comme le fait le plugin InappBrowser original), et je l'ai publié sous le nom cordova-plugin-inappbrowser-wkwebview donc:

cordova plugin add cordova-plugin-inappbrowser-wkwebview
1
DaveAlden 8 sept. 2017 à 13:53

Vous pouvez faire une chose. Créez un contrôleur natif avec XIB et créez un WKWebview leur. Écrivez un appel cordova et passez votre URL à la fonction native. Et puis chargez l'url dans le WKWebview. N'utilisez pas le inappBrowser.

Par exemple. Votre fichier WKWebViewController.h

#import <WebKit/WebKit.h>

@interface WKWebViewController : UIViewController

@property(strong,nonatomic) WKWebView *webView;
@property (strong, nonatomic) NSString *urlToBeLoaded;

@end

Votre fichier WKWebViewController.m

#import "WKWebViewController.h"

@interface WKWebViewController ()

@end


@implementation WKWebViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    NSURL *url = [NSURL URLWithString:self.urlToBeLoaded];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    _webView = [[WKWebView alloc] initWithFrame:self.view.frame];  
    [_webView loadRequest:request];
    _webView.frame = CGRectMake(self.view.frame.origin.x,self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height);
    [self.view addSubview:_webView];
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@fin

En dehors de cela, vous devez écrire une classe de plugin et y définir une méthode que vous appellerez à partir de javascript. À partir de la classe de plugin, vous devez charger le contrôleur ci-dessus

1
Nilesh Jha 17 août 2017 à 06:32