我可以通过iPhone上的webapp(javascript)访问钥匙串吗?

时间:2009-11-26 14:07:02

标签: javascript iphone web-applications webkit keychain

问题几乎在标题中; - )

您知道是否有用于从iPhone钥匙串读/写的webkit API?也就是说,我需要从webapp访问钥匙串。

提前致谢!

2 个答案:

答案 0 :(得分:1)

关于如何直接从javascript进行此操作我没有答案,与Mac WebView不同,UIWebView API不允许您将任意Objective C代码公开为javascript函数。

但是,您可以使用加载委托使用具有类似效果的变通方法:

- (BOOL)webView:(UIWebView *)webView
    shouldStartLoadWithRequest:(NSURLRequest *)request
    navigationType:(UIWebViewNavigationType)navigationType
{
    if([[[request URL] scheme] isEqualToString:@"x-your-scheme"])
    {
        // parse the request and call the appropriate objc code here

        [webView stringByEvaluatingJavaScriptFromString:@"send(results);"];
        return NO;
    }

    return YES;
}

通过让JS代码加载“x-your-scheme://”URL来触发加载委托。

答案 1 :(得分:1)

不,你不能。钥匙串只能从原生应用中获得。如果您在本机应用程序中使用UIWebView,可以通过各种方式来解决问题,但如果它是一个没有本机组件的真正的Web应用程序,则无法实现。