For a online radio streaming app, I have the code below so far. The problem that I have is when I press play, a webview opens up and when I close it the stream stops. How do I make this webview not appear on the screen/do it in the background?
ViewController.h
#interface ViewController : UIViewController
{
IBOutlet UIWebView *webView;
}
-(IBAction)play:(id)sender;
ViewController.m
-(IBAction)play:(id)sender
{
NSString *stream = #"STREAMING LINK";
NSURL *url = [NSURL URLWithString:stream];
NSURLRequest *urlrequest = [NSURLRequest requestWithURL:url];
[webView loadRequest:urlrequest];
}
Also while using webview, would I be able to make a pause/stop button and a volume switch as well?
Forget Interface Builder, and do it programmatically.
UIWebView *webView = [[UIWebView alloc]init];
NSURL *url =[NSURL URLWithString:#"STREAMING LINK"];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
[webView loadRequest:req];
Related
I am using this code to load html content in webview
- (void)viewDidLoad {
[super viewDidLoad];
NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:#"about.html" ofType:nil]];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
}
When AboutViewController tab(featured) is selected .Program shows blank screen does loads any kind of html content .
The sample program is given on following link .https://drive.google.com/open?id=0B5pNDpbvZ8SnbEhzMFFTNXJDXzA
Why code is not loading html ?
Reviewing your project, your code is fine but the real problem is that your AboutViewController viewDidLoad is not called, you must change the segue type of your NavigationController from push to rootViewController, to you AboutViewController and start working as should
Edited Code
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
NSString *pathString = [[NSBundle mainBundle]pathForResource:#"about.html" ofType:nil];
if(pathString)
{
NSURL *url = [NSURL fileURLWithPath:pathString];
if(url)
{
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
}
NSLog(#"%#", url.description);
}
NSLog(#"%#", pathString);
}
WAS
SHOULD BE
RESULT
Hope this helps you
Same url in run in lower then iOS10 (ex. iOS8,iOS9) work properly.
-(void) loadUrl
{
NSString *urlAddress = #"http://myurl.com";
//Create a URL object.
NSURL *url = [NSURL URLWithString:urlAddress];
//URL Requst Object
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
//Load the request in the UIWebView.
[detailWebView loadRequest:requestObj];
}
I tried your code and it works fine in ios 10 and xCode 8.
I used this,
-(void) loadUrl
{
NSString *urlAddress = #"http://google.com";
//Create a URL object.
NSURL *url = [NSURL URLWithString:urlAddress];
//URL Requst Object
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
//Load the request in the UIWebView.
[self.webView loadRequest:requestObj];
}
And call this method where you want using [self loadUrl];
Add URLSchemes in your plist file for your url.
I am getting webview like,
Your code is not wrong.
Hope this will help you.
In apps that run in iOS 8 and later, use the WKWebView class instead of using UIWebView.import webkit.h and use this code
#import <WebKit/WebKit.h>
WKWebViewConfiguration *theConfiguration = [[WKWebViewConfiguration alloc] init];
WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:theConfiguration];
NSURL *nsurl=[NSURL URLWithString:#"http://www.apple.com"];
NSURLRequest *nsrequest=[NSURLRequest requestWithURL:nsurl];
[webView loadRequest:nsrequest];
[self.view addSubview:webView];
I'm using a UIWebView to display a mobile website on my iPhone. The UiWebView is smaller than the display of the iPhone.
My Problem is that the content size of the website (a mobile website based on JQuery mobile) doen't fit the size of the web view.
Just an example with a small web view trying to display the google mobile website:
NSString *urlAdress = #"http://google.de";
NSURL *url = [NSURL URLWithString:urlAdress];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
[webView sizeToFit];
Primarily : set the delegate to the WebView
In .h file
#interface WebViewViewController : UIViewController<UIWebViewDelegate>
In .m file
webView.delegate =self;
webView.scalesPageToFit = NO;
NSString *urlAdress = #"http://google.de";
NSURL *url = [NSURL URLWithString:urlAdress];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[webView loadRequest:request];
add these to your code for your webview :
[webView setScalesPageToFit:YES];
[webView setContentMode:UIViewContentModeScaleAspectFit];
I created a simple webview that loads
a pre-defined website in iOS app.
NSURL *url =[NSURL URLWithString:#"http://jihadkawas.com"];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
[Webview loadRequest:req];
how can i add a URL BAR, so that user can access any url? like normal browsers?
Thank you!
You need to have a Textfield (the URL-Bar where Users can type in the website's address.
UITextField *urlBarTextField = [[UITextField alloc] initWithFrame:CGRectMake(0,0,320,40)];
[self.view addSubview:urlBarTextField];
And you need a go button or wait until the user pressed return on the Keyboard.
In the called method (either the Button target method or -(void)textField: shouldReturn:)
You need to load the new URL and display it in the UIWebView
NSURL *url = [NSURL URLWithString:urlBarTextField.text];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
[webView loadRequest:urlRequest];
That's it ;)
Just create a text field and a go button,
when the url presses the go button---
NSURL *url=[NSURL URLWithString:textField.text];
NSURLRequest *req = [NSURLRequest requestWithURL:url];
[Webview loadRequest:req];
There you go
I have the following code that allows me to load a set URL each time, placed in my viewDidLoad method:
NSString *urlAddress = #"http://google.com";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[_webView loadRequest:requestObj];
Now the user can of course go to any webpage from here and if the user decides to dismiss the view I want for them to be able to return to it.
Now I have this code, through reading various forums and searches:
again the viewDidLoad - now looks like this:
NSURLRequest *currentRequest = [_webView request];
NSURL *currentURL = [currentRequest URL];
if(currentURL != nil)
{
NSString *urlAddress = currentRequest;
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[_webView loadRequest:requestObj];
}
else {
NSString *urlAddress = #"http://google.com";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[_webView loadRequest:requestObj];
}
and in my viewDidUnLoad I have this:
-(void)viewDidUnload {
NSURLRequest *currentRequest = [_webView request];
NSURL *currentURL = [currentRequest URL];
NSLog(#"Current URL is %#", currentURL.absoluteString);
[NSURLConnection connectionWithRequest:currentRequest delegate:self];
}
a) Am I on the right track for achieving this?
b) I have a warning created on this line : `NSString *urlAddress = currentRequest;
which is:
Incompatible pointer types initializing 'NSString *__strong' with an expression of type 'NSURLRequest *__strong'
Any help is appreciated:-)
Thank you:-)
PS I started this problem out in this question, but felt it was worth a new one, so forgive me if you do not think the same.
`
NSString *urlAddress = currentRequest;
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
[_webView loadRequest:requestObj];
Could just be
[_webView loadRequest:currentRequest];
You might want to experiment with not unloading the view/view controller when the user dismisses it then there won't be a time delay when the user brings it back. (Maybe you could instead make it hidden instead of unloading it for example when the user dismisses it, or send it to the back of the navigation controller stack, assuming you have one as the root view controller).
P.S.
Your warning is because you're trying to assign an NSURLRequest object to an NSString object.