J'essaie depuis un moment, mais je ne comprends pas.
J'ai écrit la fonction init suivante dans un fichier de support:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
webview=[[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 1024,768)];
}
return self;
}
et suivant dans ViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
UIWebView *view = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)];
NSString *url=@"http://www.google.com";
NSURL *nsurl=[NSURL URLWithString:url];
NSURLRequest *nsrequest=[NSURLRequest requestWithURL:nsurl];
[view loadRequest:nsrequest];
}
J'ai également essayé de créer la vue Web dans didFinishLaunchingWithOptions:
méthode de appDelegate, mais cela n'a pas fonctionné non plus.
Quelle est la bonne façon?
J'espère que cette solution vous aidera.
- (void)viewDidLoad
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)]; NSString *urlString = @"https://www.google.com"; NSURL *url = [NSURL URLWithString:urlString]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; webView loadRequest:request]; [self.view addSubview:webView];
J'ai utilisé le cadre statique de la webView, vous pouvez l'utiliser selon vos besoins.
UIWebView
est obsolète: d'abord obsolète dans iOS 12.0 - N'est plus pris en charge; veuillez adopter WKWebView
, donc le code mis à jour pour Objective C et Swift sont ci-dessousSwift:
import WebKit
let theConfiguration = WKWebViewConfiguration()
let webView = WKWebView(frame: view.frame, configuration: theConfiguration)
let nsurl = URL(string: "https://www.google.com")
var nsrequest: URLRequest? = nil
if let nsurl = nsurl {
nsrequest = URLRequest(url: nsurl)
}
if let nsrequest = nsrequest {
webView.load(nsrequest)
}
view.addSubview(webView)
Objectif C:
#import <WebKit/WKWebView.h>
#import <WebKit/WKWebViewConfiguration.h>
WKWebViewConfiguration *theConfiguration = [[WKWebViewConfiguration alloc] init];
WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:theConfiguration];
NSURL *nsurl=[NSURL URLWithString:@"https://www.google.com"];
NSURLRequest *nsrequest=[NSURLRequest requestWithURL:nsurl];
[webView loadRequest:nsrequest];
[self.view addSubview:webView];
Il semble que vous ayez oublié d'ajouter webview
comme sous-vue de sa vue parent:
-(id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
webview=[[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 1024,768)];
[self addSubview:webview];
}
return self;
}
viewDidLoad
n'est pas non plus le bon endroit pour créer des sous-vues. Vous devez exposer webview
en tant que propriété de votre vue, puis y accéder à partir de viewDidLoad
, comme ceci:
NSString *url=@"http://www.google.com";
NSURL *nsurl=[NSURL URLWithString:url];
NSURLRequest *nsrequest=[NSURLRequest requestWithURL:nsurl];
[[self.view webview] loadRequest:nsrequest];
Cette réponse est une légère amélioration par rapport à la réponse de @Ashvin Ajadiya. Pour définir dynamiquement la largeur et la hauteur de la vue Web en fonction de votre appareil, utilisez ce code à l'intérieur viewWillAppear sinon il n'obtiendra pas la largeur et la hauteur appropriées de l'appareil
-(void)viewWillAppear:(BOOL)animated
{
UIWebView *webview=[[UIWebView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width,self.view.frame.size.height)];
NSString *url=@"http://www.google.com";
NSURL *nsurl=[NSURL URLWithString:url];
NSURLRequest *nsrequest=[NSURLRequest requestWithURL:nsurl];
[webview loadRequest:nsrequest];
[self.view addSubview:webview];
}
UIWebView *webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 320, 568)];
webView.delegate = self;
NSString *url=@"http://www.google.com";
NSURL *nsurl=[NSURL URLWithString:url];
NSURLRequest *nsrequest=[NSURLRequest requestWithURL:nsurl];
[webview loadRequest:nsrequest];
[self.view addSubview:webview];
Déclarez UIWebviewDelegate dans l'interface du viewcontroller