【问题标题】:How to reload already loaded uiwebview with new HTML string?如何使用新的 HTML 字符串重新加载已加载的 uiwebview?
【发布时间】:2011-09-13 00:08:45
【问题描述】:

我在我的项目中实现了UIWebView 来显示一些HTML 数据。问题是我使用 webview 方法加载了一些 HTML 字符串

[myWebView loadHTMLString:Data baseURL:nil];

现在我想添加按钮操作,这样当用户单击按钮时,新数据会加载到 webview 中。这样

-(void)clicked{
[myWebView loadHTMLString:newData baseURL:nil];
}

我尝试应用与上述相同的方法,但没有任何影响。我也尝试了 [myWebView reload],但没有任何反应。

请告诉我适当的方法。

【问题讨论】:

    标签: iphone objective-c uiwebview refresh reload


    【解决方案1】:

    尝试,首先调用 stopLoading 然后重新加载您的 UIWebView 实例。

    [myWebView  stopLoading ];
    [myWebView  reload];
    

    【讨论】:

    • 谢谢。最后我用我的命中和试验方法做到了。我将所有的 WebView 加载方法都放在 viewDidLoad 中,它可以按我的要求工作。
    【解决方案2】:

    loadHTMLString:baseURL: 是正确的方法。

    但仍有一些问题可能是错误的,例如您尝试发送到 webview 的数据。您是否尝试记录您的 newData 对象以查看发送到 webView 对象的内容?

    你的 newData 字符串是从资源文件中加载的吗?如果是这样,您可以尝试使用以下代码从资源中加载 html 数据

    NSString *html = [[NSString alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"myFileName" ofType:@"html"]];
    [myWebView loadHTMLString:html baseURL:nil];
    

    【讨论】:

      【解决方案3】:

      即使在尝试接受的答案后,我的问题也没有得到解决。
      因此,在花了一些时间后,我发现以下逻辑对我有用:
      Objective-c

      dispatch_async(dispatch_get_main_queue(), { 
                      [myWebView  reload];
                  })
      

      斯威夫特

      dispatch_async(dispatch_get_main_queue(), { 
                          myWebView.reload()
                      })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-23
        • 2010-11-11
        • 1970-01-01
        • 2012-05-22
        • 1970-01-01
        • 2013-05-03
        • 2013-04-22
        相关资源
        最近更新 更多