私はしばらくこれを試してみましたが、私はそれを正しくしていません。
サポートファイルに次の初期化関数を記述しました。
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
webview=[[UIWebView alloc]initWithFrame:CGRectMake(0, 0, 1024,768)];
}
return self;
}
そして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];
}
また、appDelegateのdidFinishLaunchingWithOptions:
メソッドでWebビューを作成しようとしましたが、機能しませんでした。
正しい方法は何ですか?
このソリューションがお役に立てば幸いです。
- (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];
WebViewの静的フレームを使用しましたが、要件に応じて使用できます。
UIWebView
は非推奨です。最初はiOS 12.0で非推奨-サポートされなくなりました。 WKWebView
を採用してください。そのため、Objective CおよびSwift=Swift:
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)
目的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];
親ビューのサブビューとしてwebview
を追加するのを忘れているようです:
-(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
はサブビューを作成する適切な場所ではありません。ビューのプロパティとしてwebview
を公開し、次のようにviewDidLoad
からアクセスする必要があります。
NSString *url=@"http://www.google.com";
NSURL *nsurl=[NSURL URLWithString:url];
NSURLRequest *nsrequest=[NSURLRequest requestWithURL:nsurl];
[[self.view webview] loadRequest:nsrequest];
これは、@ Ashvin Ajadiyaの回答に対するわずかな改善です。デバイスに応じてWebビューの幅と高さを動的に設定するには、このコードをviewWillAppear内で使用します。そうしないと、適切なデバイスの幅と高さが得られません。
-(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];
ViewcontrollerのインターフェースでUIWebviewDelegateを宣言します