UIWebView + custom javascript object

2019-08-15 20:42发布

问题:

I'm using a UIWebView with local jquery and a script that defines a function, like this:

function myFunc() {
    var myVar;

    function info() {
        alert('info');
    }
}

What I cannot accomplish is such a simple task:

var myfunc = new myFunc();
myfunc.info();

in the UIWebView. How can I instantiate a new object and call a function of that object by using:

[webViewObject stringByEvaluatingJavaScriptFromString:@"myfunc.info();"];

I'm struggling about this.

回答1:

Just solved. Is sufficient to implement the protocol in the viewcontroller you are using it, then declare:

webView.delegate = self;

and in:

-(void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSLog(@"webViewDidFinishLoad");
    [webView stringByEvaluatingJavaScriptFromString:@"var obj = new myObject();"];
}

later:

-(void)myAwesomeAction
{
    [webView stringByEvaluatingJavaScriptFromString:@"obj.func();"];
}