Is it possible to load a URL without a visible view?
Basically I'm trying to submit some information to my server by a php page. It works from my webViewController, which has a working view, but not from my appDelegate, which doesn't have a visible view.
I recommend you use ASIHTTPRequest to submit the information to your php page.
Related
I am working on some kind of tab functionality in my app so the user can switch between web pages they have open just like in any browser.
Is it possible to have a page loaded in one webview and then transfer the data to a second web view so it can be displayed without requiring the user to re-download the page?
Thanks.
Is it possible to have a page loaded in one webview and then transfer the data to a second web view so it can be displayed without requiring the user to re-download the page?
Instead of doing this, why don't you swap your first and second web view? So, the first web view would replace the second (it would not need to be reloaded), and then you would download a second page in the latter.
As an aside, you could copy the content of the first web view into the second by doing:
NSString* body = [webView stringByEvaluatingJavaScriptFromString:#"document.body"];
then:
[secondWebView loadHTMLString:body baseURL:nil];
but this would not be very efficient: the HTML would not be downloaded a second time, still it should be rendered by the second web view (and this would cost some time, so you would have a delay). Much better to swap the web views.
Simply.. that's not possible. As far as i know is not possible to share data between different instance of UIWebview
I need to access camera from a remote html page. I load this html page through child browser . Need to open camera or any native view on a button click on html file..
No sure if this is the best/most elegant possibility, but it should work:
By click on button load an specific URL.
The UIWebView has delegate methods to inform you, when a page finished loading.
In the – webViewDidFinishLoad: method check if the loaded URL was your specific button URL, if YES show camera/any other native view.
I want to show a popover view on top of a webview. And the popover should be shown on selecting any UI element in webview. I am able to capture the touch event in a Javascript code . Can anyone help me.. Is it possible to post a notification event from the Javascript..? Is there any other way of achieving this..?
Thanks.
This is exactly what PhoneGap does. The idea behind it is that in response to the touch, your JavaScript loads a particular URL, possibly with a custom scheme. The web view delegate's -webView:shouldStartLoadWithRequest:navigationType: method is called before the web view actually makes the request. If the implementation of that method recognizes the URL, it can then take whatever action it likes, such as displaying a popover view.
You can easily call your scripts (with in the sandbox) from your objective-c methods. Thw Web kit has the methods for evaluating Script codes [webview stringByEvaluatingJavaScriptFromString:#"myJavascriptFunction()"];Check this tutorials to learn dig deeper Tutorial-1 and Tutorial-2.. hope this helps you...
Using Woodwing, we have a page that has custom html in it, using the custom web widget.
That widget has an anchor tag, that when tapped, opens a page in safari.
However, if we create the same page using the HTML widget, and a link overlay, that triggers a ModalView to display.
I'm assuming this has something to do with WoodWing's (un)documented protocols for the anchor tags, that are captured by the WoodWing shell application and used to trigger the "ModalView" display. Since everything in Woodwing generates an XML that is parsed when the app is loaded, and I've done numerous applications, this seems reasonable. However, there is very little technical documentation.
My question is: does anyone know any documentation on those protocols, or a way I can use custom-html to trigger the ModalView? I've tried replacing "http" with "ww" but no dice. It's possible it's javascript but I'm suspecting protocols...
The UIWebViewDelegate defines the webView:shouldStartLoadWithRequest:navigationType: method that your view controller can implement. In this implementation, your code shoudl decide if it wants to handle the request (user click) or let the UIWebView handle it normally.
For displaying a modal as a result of a click, this method would display the modal and return NO.
The default HTML widget implementation doesn't support this out of the box. There are two ways that you can do to achieve this;
Implement what they call a 'custom object'. They documented this feature, if you have access to their documentation this should be relatively easy to figure out. It allows you to write native objects and inject them into both the .ofip format and the application.
Implement a modal dialog within the widget (in HTML). This is less convenient but possible to do (if you have a fullscreen widget).
Create the specific URL for open as you mention in your comment(ww://string.string).
Then in UIWebView Delegate method (webView: shouldStartLoadWithRequest: navigationType:) get the redirect URL. If redirect URL is equal to you mention before then perform your action.
Let me know if this answer help you.
Thanks,
Suppose my app will load a local web page which is stored in my app bundle. I want to push the view or present a view when the user click a link or an image inside that web page. How to do this? Let's make this be general question: how to communicate with my app from a local web page?
Thank you.
Use "webview.request.URL.absoluteString" to get the request-string of the clicked link in the delegate-method "webViewDidFinishLoad:" or "webViewDidStartLoad:".
then you can scan this url for some special substring.
For example you could make a link like ".../index.php?iPhone_action=abcdef".
In the delegate-methods you can check if the link has the substring "?iPhone_action=" and if it does, then put the part of the link, whick follows "?iPhone_action=" in a NSString.
(in our example it would be "abcdef").
Depending on the value of this NSString you could fire a action in your app.
There is an undocumented method to catch the event when you click on a link in UIWebView. You can do whatever you want to do in that method.Search on google/stackoverflow for it. Or see my answer in this stackoverflow post.
Show alert view when click on a link