3

I Have an app which has UIWebView and the Webview contains simple Button

and here's my WebViewController :

import UIKit

class testViewController: UIViewController {
    internal static var testID = 0

    @IBOutlet weak var myWebView: UIWebView!
    override func viewDidLoad() {
        super.viewDidLoad()

    }

    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)

        let url = NSURL (string: "http://mydomainname/index.html");
        let requestObj = NSURLRequest(URL: url!);
        myWebView.loadRequest(requestObj);
    }
}

And the webView displaying my HTML perfectly

I am just need to present a newViewController from my iOS project when i Click the button in my HTML file ?

like that :

<button onclick="myFunction()> Submit </button>

<script>
function myFunction()
{
presentViewController('myViewControllerName');

}



</script>

is there any way to do that in iOS ?

0

2 Answers 2

6

You can assign a scheme in the js action:

window.location = yourscheme://<scheme_content>

and in swift layer you can use the callback:

func webView(webView: UIWebView!, shouldStartLoadWithRequest request: NSURLRequest!, navigationType: UIWebViewNavigationType) -> Bool {
    if (request.URL.scheme == "yourscheme") {
        // Your code
    }
    return true;
}
Sign up to request clarification or add additional context in comments.

Comments

2

Yes you can do that like this :

func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
        
        if (navigationType == UIWebViewNavigationType.FormSubmitted) {
            let VC = self.storyboard?.instantiateViewControllerWithIdentifier("myViewControllerName") as? myViewControllerName

            let navigationController = UINavigationController(rootViewController: VC!)
            self.navigationController?.presentViewController(navigationController, animated: true, completion:nil)

    
        }
        return true
    }

3 Comments

My xcode error: Use of undeclared type 'myViewControllerName'
Hahah LOL - My xcode error: Use of undeclared type 'myViewControllerName'
because you need to give Your view controller name , instead of "myViewController",It is just an example name

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.