- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在制作一个数据来自网站的 iOS 应用程序。我正在弄清楚当用户将 tableView 滚动到底部时如何加载更多数据。
注意:我创建的UIWebView是在后台的,所以我可以通过这种hack方式获取webView显示的内容,但是用户只能交互的是一个UITableView。
因为我的应用程序需要的数据来自网站(Ajax)。我使用这种方法来获取网站的内容。是的,我在 webView:shouldStartLoadWithRequest
委托(delegate)方法中使用 UIWebView
完成了此操作。
NSString *htmlString = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerHTML"];
这很完美,我得到了内容。
但正如我之前所说,问题发生了,当用户滚动到底部时,tableView 需要加载更多数据。所以,我的 UIWebView
也需要加载更多的内容来从内容中解析更多的数据,这样 tableView 才能继续。 注意:我无法控制服务器上的页面,所以我无法获取 API。 (是否可以跨域请求?)
我考虑过这两种方法:
方法一、模拟向上滑动手势触发load more(当webView滚动到底部时,会自动触发load more Action )
方法 2. 注入(inject)一个 javascript 来告诉 UIWebView
加载更多数据。
我使用 Chrome 中的开发人员工具来捕获加载更多请求。这是我得到的。
Remote Address:54.165.215.138:443
Request URL:https://color.adobe.com/api/v2/themes?filter=public&startIndex=144&maxNumber=36&sort=like_count&time=week
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:application/json, text/javascript, */*; q=0.01
Accept-Encoding:gzip, deflate, sdch
accept-language:zh
accept-version:2.0.0
Cache-Control:max-age=0
Connection:keep-alive
Content-Type:application/json
Cookie:AMCV_9E1005A551ED61CA0A490D45@AdobeOrg=T; international=cn; storeregion=cn; __lc.visitor_id.1031448=S1421040023.3b40036efc; 57472748-VID=111520816012303; sfdc_session=-; mbox=PC#1422579254596-83420.19_07#1423794285|session#1422583820268-575696#1422586545|check#true#1422584745; kuler-loc=zh; cookies-enabled=1; s_pers=%20s_fid%3D35A9926601E31AD1-1D7E51664BFBD9C5%7C1485743101094%3B%20s_vs%3D1%7C1422586501096%3B%20gpv%3Dcolor.adobe.com%2520%253A%2520Explore%2520%253A%2520Most%2520Popular%2520%253A%2520Week%7C1422586501098%3B%20s_nr%3D1422584701102-Repeat%7C1454120701102%3B; s_sess=%20s_ppv%3D-%252C100%252C18%252C8054%3B%20s_cpc%3D0%3B%20s_cc%3Dtrue%3B%20s_sq%3D%3B; s_vi=[CS]v1|2A3C2EE20548B5C7-40000105000065EB[CE]; aam_uuid=33030698550757492143013270951098470183
Host:color.adobe.com
If-Modified-Since:Sat, 1 Jan 2000 00:00:00 GMT
Referer:https://color.adobe.com/zh/explore/most-popular/?time=week
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.93 Safari/537.36
x-api-key:7810788A1CFDC3A717C58F96BC4DD8B4
X-NewRelic-ID:UQAPV1JRGwEGV1RVBgQ=
X-Requested-With:XMLHttpRequest
Query String Parametersview sourceview URL encoded
filter:public
startIndex:144
maxNumber:36
sort:like_count
time:week
Response Headersview source
Access-Control-Allow-Headers:Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Content-Language, Date, Api-Version, Response-Time, X-API-Key
Access-Control-Allow-Methods:GET, POST
Access-Control-Allow-Origin:*
Access-Control-Expose-Headers:Api-Version, Request-Id, Response-Time, X-API-Key
Api-Version:2.0.0
Cache-Control:no-cache, must-revalidate
Connection:keep-alive
Content-Encoding:gzip
Content-Language:zh
Content-MD5:Hbz5uI3q/P2aEQ0+0TfZgg==
Content-Security-Policy:default-src 'self'; img-src 'self' *.behance.net *.s2stagehance.com data: *.typekit.net *.adobe.com *.newrelic.com *.nr-data.net; font-src 'self' data: *.typekit.net; style-src 'self' 'unsafe-inline' *.typekit.net *.adobe.com adobe.com; script-src 'self' 'unsafe-inline' 'unsafe-eval' *.services.adobe.com *.adobe.com *.adobetag.com *.typekit.net *.tt.omtrdc.net adobe.demdex.net *.newrelic.com *.adobelogin.com *.behance.net net.s2stagehance.com *.adobesunbreak.com; frame-src 'self' *.services.adobe.com *.adobelogin.com *.adobe.com adobe.com *.adobeku.com *.facebook.com *.adobe.demdex.net adobe.demdex.net; report-uri /api/v2/csp-reports; connect-src 'self' accounts.adobe.com www-stage.adobesunbreak.com *.services.adobe.com;
Content-Type:application/json
Date:Fri, 30 Jan 2015 02:25:26 GMT
Expires:-1
Request-Id:4043bed0-a827-11e4-98a0-81fb44ac31c8
Response-Time:20
Server:kuler-prod
Strict-Transport-Security:max-age=31104000
transfer-encoding:chunked
X-Content-Type-Options:nosniff
X-Frame-Options:SAMEORIGIN
X-XSS-Protection:1; mode=block
所以我想知道有没有办法在 UIWebView 中触发 Load More。有没有办法做到这一点?如果我的问题不清楚,请随时提问。谢谢。
最佳答案
在网页的 HTML 中确定滚动到底部时调用的 javascript 函数,然后使用 stringByEvaluatingJavaScriptFromString:
调用该函数,此时 UIWebView
将触发该功能。但不利的是,当 AJAX 加载新内容时,您不会以任何方式收到通知,因此您必须为此想出另一种解决方法。
此外,您提到:
I am NOT in control of the pages on server
我读作:
My app may break if the page changes
为什么要围绕可能会更改的网页构建应用,而不是直接与文档化的 API 通信?
关于ios - UIWebView Trigger 用Ajax网站加载更多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28229837/
我有这个网站,这个特定页面是安全的,但是当它回发时,它回发到一个不安全的页面。如何解决? 我正在使用 ASP.NET 向导。我有这个页面 - checkout.aspx,页面包含这个控件 checko
我有 2 个 azure 网站 - 两个独立的项目 我现在有 2 个网址: myazurewebsite.azurewebsites.net myazureblog.azurewebsites.net
我有 2 个 azure 网站 - 两个独立的项目 我现在有 2 个网址: myazurewebsite.azurewebsites.net myazureblog.azurewebsites.net
环境: 旧网站: React 托管在 Heroku URL( http://sameurl.com ) 新网站: Java 托管在 Heroku URL ( http://sameurl.com )
我已在 Windows Azure 上注册了一个测试帐户来对其进行测试。我构建了一个 Hello world ASP.NET Web 应用程序 + 数据库只是为了测试。 我安装了 Visual Stu
我有一个可以收集和显示各种测量值的产品(不会详细介绍)。正如人们所期望的那样,显示部分是一个数据库+建立在其之上的网站(使用 Symfony)。 但是,我们可能还会创建一个 API 来向第三方公开数据
这个问题在这里已经有了答案: Software keyboard resizes background image on Android (16 个答案) 关闭 8 年前。 我有一个类似的问题:So
这个问题似乎很常见,但我真的无法根据现有答案解决问题。 我有一个简单的 maven 项目,没有任何复杂的部署配置等,并且想在点击“mvn site”时生成一个 Maven CheckStyle 报告。
有没有人看过有关何时进行横向扩展与纵向扩展的最佳选择的任何分析或信息。什么时候一个比另一个更有意义。 目前,在标准模式和基本模式下,2 个小型实例的费用与 1 个中型实例的费用相同。 拥有 2 个小型
有没有办法找到 azure 网站何时停止? (我通过门户网站停止了网站,但我不记得是什么时候......) 我正在寻找一些日志,但没有找到任何有用的内容。 谢谢。 最佳答案 您拥有的最接近的是 azu
我目前在 Azure VM 的 IIS 中拥有一个网站。我已将该站点复制到 2 个可用区域中的 2 个虚拟机上。 这可以保护网站免遭停机。 我需要为高负载时刻实现一些可扩展性。这似乎就是创建音阶集的目
我有一个托管在 Azure 上的网站 ( http://mike-ward.azurewebsites.net/ )。我从 Azure 门户设置了一个指向(引用?)我的网站的 Azure CDN。根据
我有一个 Azure 网站(不是 Web 角色),有 2 个槽:生产和暂存。 我只想为生产插槽启用 CDN,而不是为登台启用,问题是我找不到识别主机插槽的方法。 RoleEnvironment 不可用
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提出有关书籍、工具、软件库等建议的问题。您可以编辑问题,以便可以用事实和引用来回答它。 4年前关
我们正在考虑将一些网站从 Azure 云服务迁移到 Azure 网站(事情似乎就是这样进行的)。显然,我们被明确告知云服务不会保留文件系统状态,因为它们会在机器故障时重新部署。 我假设网站是基于 Bl
我有一个 Azure 网站,需要使用在 VM 上运行的 Elasticsearch 服务。 虽然我需要能够锁定对 Elasticsearch 的访问,以便只有 Azure 网站可以访问它,但我似乎无法
我有一个 azure 网站,位于 yis3.azurewebsites.net - 我已将其提升为“共享”网站,以便我可以使用自定义域。我拥有从 123-reg.co.uk 购买的域名 yorkshi
我正在使用 abcPDF 动态创建 PDF。 我想保存这些 PDF,以便客户随时检索。最简单的方法(也是我现在在当前服务器上所做的方法)是将完成的 PDF 保存到文件系统。 看来我一直坚持使用 blo
我们正在尝试了解 Windows Azure 管理 API 为 Azure 网站(而非 Webroles)返回的监控数据的复杂性 例如,下图描述了为 CPUTime 检索的数据点。它似乎表明,在晚上
看起来真的很愚蠢,因为我找不到它: 门户网站似乎不太直观,我如何为一个“网站”付费并在其中运行最多 500 个网站?我想当我通过单击左下角的加号添加“网站”时,我添加了整个虚拟机而不是子站点。如何仅添
我是一名优秀的程序员,十分优秀!