【问题标题】:How can I get response from UIWebView page to an iOS app?如何从 UIWebView 页面获得对 iOS 应用程序的响应?
【发布时间】:2023-03-12 22:44:01
【问题描述】:

我使用UIWebView 作为UIViewController 中的子视图。这个WebView 所做的是它允许用户提交一个表单并且该表单响应为JSON 对象。如何获得对应用程序的响应?我无法找到回应。我只知道回复是JSON。我什至尝试使用shouldStartLoadWithRequest()。但它只显示网址。任何帮助将不胜感激。

【问题讨论】:

  • UIWebView 有可以帮助你的 navigationDelegate 方法。
  • 你能详细说明一下吗?
  • 尝试使用 NSCachedURLResponse jsonResponse = [[NSURLCache sharedURLCache] cachedResponseForRequest:webView.request]; NSLog(@"%@",[(NSHTTPURLResponse)jsonResponse.response allHeaderFields]);也在 webViewDidFinishLoad 方法中。
  • 我希望这有效。
  • 我在 webViewDidLoad() 和 shouldStartLoadWithRequest() 中使用了这几行代码。两个结果 jsonResponse 都获得 NULL 值。如果我做得正确,也许我应该与客户确认他们是否真的在提交表单时给出 JSON 响应。

标签: ios objective-c json uiwebview uiwebviewdelegate


【解决方案1】:

我使用“window.location”。有点不舒服,但很好。

【讨论】:

    【解决方案2】:

    你可以试试这个方法可能对你有帮助

    - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

    并检查其中的导航类型 typedef NS_ENUM(NSInteger, UIWebViewNavigationType) { UIWebViewNavigationTypeLinkClicked, UIWebViewNavigationTypeFormSubmitted, UIWebViewNavigationTypeBackForward, UIWebViewNavigationTypeReload, UIWebViewNavigationTypeFormResubmitted, UIWebViewNavigationTypeOther }

    【讨论】:

    • 我尝试实现这个方法,但是如何找到表单返回的响应?该方法只给了request和navigationType两个参数
    • @HirenPrajapati 表格是在您的网站上还是在任何网站上?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-16
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 2018-06-14
    相关资源
    最近更新 更多