【问题标题】:Can i send data into webview?我可以将数据发送到 webview 吗?
【发布时间】:2017-03-09 09:22:39
【问题描述】:

我已经在我的应用中创建了 webview,

 NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"SimpleCall" ofType:@"html"];

 NSString* htmlString = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error:nil];

 [webview loadHTMLString:htmlString baseURL: [[NSBundle mainBundle] bundleURL]];

 [self.view addSubview:webview];

现在我想在 webview 开始加载时向 webview 发送数据。uiwebview 有任何属性吗?

谢谢提前。

【问题讨论】:

  • 什么数据?请详细说明,您的问题不清楚。
  • 获取和发布数据?

标签: ios objective-c uiwebview delegates


【解决方案1】:

您必须在您的UIWebView 上设置委托UIWebViewDelegate 属性,例如:

webView.delegate = self;

其中self 符合UIWebViewDelegate 协议并实现回调方法webViewDidStartLoad(检查docs)如果您真的想在Web 视图开始加载时执行某些操作。然后,您实现该方法:

- (void)webViewDidStartLoad:(UIWebView *)webView {
 //you can do something in here, but DON'T call any loaders of webView's - loadHTML or reload, cause this will result in a loop
}

但我怀疑这会解决您的问题 - 首先,您可能想要在 web 视图完成时做一些事情。第二 - 你能详细说明你的意思吗:

发送数据到网页视图

免责声明:从 iOS 8 及更高版本开始,您应该改用 WKWebView

编辑:如 cmets 中所述,您希望动态更新 html 内容。在WKWebViewdocs 中,您可以读到没有选项可以这样做(即从您的 NSArray 动态插入选项到加载的 html 字符串)。您必须手动更新您的 html 字符串,然后使用新的更新后的 html 重新加载 WKWebView。重新加载整个 html 只是为了更新一个功能在这里可能不是一个选项,因此最好将加载的网页存储在服务器上并通过调用动态更新(当网页使用新选项更新时):

[webView reload];

【讨论】:

  • 我有一个 html 文件,每次登录或刷新 app 中的数据时都会下载该文件。现在,在加载 webview 之前,我需要向 html 发送一个 NSArray 以获取下拉(html)值。数组是动态的。
  • @KrishSolanki 我根据您提供的内容更新了我的答案,但您试图完成的事情在“设备”方面是无法实现的。
猜你喜欢
  • 1970-01-01
  • 2021-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-20
  • 2012-12-06
  • 2016-05-22
  • 2023-03-06
相关资源
最近更新 更多