我如何从javascript调用目标c代码

时间:2014-04-15 05:47:16

标签: ios objective-c

我在javascript code的网页上有一些uiwebview,我想用它来调用我的一个客观c方法。

我在网上发现了一些我决定使用的代码。但它似乎仍然无法正常工作。任何人都可以看到问题出在哪里?

javascript代码:

function someMethod() {
window.location = "ios:webToNativeCall";
}

目标c代码:

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
    if ([[[request URL] absoluteString] hasPrefix:@"ios:"]) {

        // Call the given selector
        [self performSelector:@selector(webToNativeCall)];
        // Cancel the location change
        return NO;
    }
    return YES;
}

-(void)webToNativeCall
{
    //my code here
}

我不确定,如何使用此方法,因此可能是我错误地实现了它。

有没有人对可能导致这种情况的原因有任何想法?

先谢谢。

2 个答案:

答案 0 :(得分:1)

  1. 此代码看起来不错,请检查是否设置了UIWebView的委托。

  2. 否则您可以使用 EasyJSWebView 从Github下载它,它很容易使用。

答案 1 :(得分:0)

你一定错过了链接代表。

将webView的委托连接到.xib文件中的文件所有者

使用以下代码

webView = [[UIWebView alloc] init];
webView.delegate = self;
您的viewDidLoad中的

也写下面的代码

[webView stringByEvaluatingJavaScriptFromString:@"yourJavascriptFunction()"];

希望它对你有所帮助......