【问题标题】:Can I access keychain from a webapp (javascript) on the iPhone?我可以从 iPhone 上的 webapp (javascript) 访问钥匙串吗?
【发布时间】:2010-12-20 16:54:28
【问题描述】:

问题几乎就在标题中;-)

您知道是否有用于从 iPhone 钥匙串读取/写入的 webkit API 吗?也就是说,我需要从 web 应用程序访问钥匙串。

提前致谢!

【问题讨论】:

    标签: javascript iphone web-applications webkit keychain


    【解决方案1】:

    不,你不能。钥匙串只能从本机应用程序中使用。如果您在本机应用程序中使用 UIWebView,则可以通过一些方法来桥接,但如果它是没有本机组件的真正 Web 应用程序,则不可能。

    【讨论】:

      【解决方案2】:

      我没有关于如何直接从 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 来触发加载委托。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-28
        • 1970-01-01
        • 1970-01-01
        • 2022-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多