UIWebView 中自动填充用户名和密码

2024-07-04

我正在为我做一个非常简单的应用程序。当我启动这个应用程序时,它只会将我带到这个网页https://social.tre.it/expert https://social.tre.it/expert.

我想自动登录,那么有没有办法自动填写用户名和密码,检查“我接受条件”标记并按“登录”按钮?

我试过这个自动填充用户名和密码 UIWebView Swift https://stackoverflow.com/questions/26329771/autofill-username-and-password-uiwebview-swift但它不起作用,我不是该页面的创建者,所以我不知道它的结构到底如何。

即使 iCloud 钥匙串可以填写表格也会很酷...但也许我要求太多了!


您可以使用 JavaScript 来完成此操作。

如果您检查该页面,您可以很容易地找到文本输入字段的 ID(expert_email and expert_password)并执行一些JS代码来填充它们。

实施webViewDidFinishLoad的方法UIWebView像这样委托:

目标-C:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    //fill data
    NSString *email = @"[email protected] /cdn-cgi/l/email-protection";
    NSString *password = @"mypassword";
    NSString *fillDataJsCall = [NSString stringWithFormat:@"document.getElementById('expert_email').value = '%@';document.getElementById('expert_password').value = '%@';", email, password];
    [webView stringByEvaluatingJavaScriptFromString:fillDataJsCall];

    //check checkboxes
    [webView stringByEvaluatingJavaScriptFromString:@"document.getElementById('expert_remember_me').checked = true; document.getElementById('expert_terms_of_service').checked = true;"];

    //submit form
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC), dispatch_get_main_queue(), ^(void)
    {
       [webView stringByEvaluatingJavaScriptFromString:@"document.forms[\"new_expert\"].submit();"];
    });
}

SWIFT:

func webViewDidFinishLoad(webView: UIWebView) {

    // fill data
    let savedUsername = "USERNAME"
    let savedPassword = "PASSWORD"

    let fillForm = String(format: "document.getElementById('expert_email').value = '\(savedUsername)';document.getElementById('expert_password').value = '\(savedPassword)';")
    webView.stringByEvaluatingJavaScriptFromString(fillForm)

    //check checkboxes
    webView.stringByEvaluatingJavaScriptFromString("document.getElementById('expert_remember_me').checked = true; document.getElementById('expert_terms_of_service').checked = true;")

     //submit form
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, Int64(1 * NSEC_PER_SEC)), dispatch_get_main_queue()){
        webView.stringByEvaluatingJavaScriptFromString("document.forms[\"new_expert\"].submit();")
    }
}

这应该填写您的信息。但是,如果该网站将来更改其结构,此代码很容易被破坏。当您处理自己的页面时,这种执行 JS 代码的方法更为合理。

Edit:

我更新了代码以演示如何检查复选框以及如何提交表单。

一些注意事项:

  • 当登录失败时,页面会重新加载,因此您最终会陷入无限循环的调用webViewDidFinishLoad由于您尝试一次又一次地提交,因此您可能需要添加一些逻辑来打破这种情况。这就是为什么我在提交之前延迟以便能够看到发生了什么。
  • 除了上一点中的信息之外 - 您还将接到以下电话:webViewDidFinishLoad无论如何,在登录成功后(当重定向到下一页时),因此您可能希望在加载不同页面时引发一个标志(仅在登录页面上执行登录尝试)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UIWebView 中自动填充用户名和密码 的相关文章

  • NSURL isFileURL 总是返回 NO

    有人可以向我解释一下为什么下面的代码 NSString filePathString NSSearchPathForDirectoriesInDomains NSDocumentDirectory NSUserDomainMask YES
  • 准备 iPhone 的调试器支持

    我无法在 iPhone 上安装该应用程序 我被这条消息困住了 准备 iPhone 的调试器支持 在这里尝试了所有答案 https stackoverflow com questions 46316373 xcode9 iphone is b
  • 将 Float 数组写入二进制文件并在 swift 中读取

    我怎样才能写数组Float到二进制文件然后读取它 var array Float 0 1 0 2 0 3 func writeArrayToBinary array Float func readArrayFromBinary gt Flo
  • 更改 iPhone UISlider 栏图像

    我正在使用一个UISlider在我的应用程序中 但我想为其使用自定义的 外观和感觉 我已将拇指更改为我自己的图像 但有没有办法也更改栏 我有一个想要使用的条形图像 但不知道如何执行此操作 我已经找到了如何更改最大和最小图像 但不是条形图本身
  • 无法使用设备上的沙箱测试用户登录

    尝试进行一些应用程序内购买测试 因此我在 itunesconnect 上创建了一个沙箱测试器 但是当我尝试在我的设备上以该用户身份登录时 出现错误 不允许创建 Itunes 帐户 Apple ID 目前无法用于 iTunes 商店 请 稍后
  • Cocoa:如何制作像 Pages 或 Numbers 中那样的小工具栏?

    Apple 的应用程序 例如 Pages 和 Numbers 总是在主工具栏下方显示一个附加的小工具栏 Interface Builder 中是否有这样的对象 或者我必须从头开始构建它 我查了一下 IB 图书馆 但到目前为止什么也没找到 您
  • 如何测试为 SKProductsRequest 设置不同的区域设置

    我正在 iPhone 应用程序中实现 IAP 并在沙盒环境中工作 我有我的代码设置要处理SKProducts由返回SKProductsRequest获取定价信息 我想测试检索不同区域设置中的价格值 例如欧元或日元 以测试我的格式化代码 我怎
  • Spotify 会话管理

    我在我的应用程序中有一个 Spotify 登录并尝试进行自动登录 登录功能 func getSpotifyToken fromController controller UIViewController success spotifyTok
  • 表格视图单元格作为按钮

    我正在尝试将已分组的表视图单元格设置为按钮 但我似乎无法在 XCode 4 2 的界面生成器中或以编程方式找到执行此操作的位置 我尝试将表视图单元格链接到 IBAction 但它只允许我创建或链接到 IBOutlet 作为临时修复 我在单元
  • 没有可编译的体系结构(ARCHS=i386、VALID_ARCHS=arm64 armv7 armv7s)

    Preface 我确实看过类似的问题 https stackoverflow com questions 22328882 xcode 5 1 no architectures to compile for only active arch
  • 如何更改导航栏上 BarButtonItem 的文本?

    我正在尝试创建一个可以编辑的项目列表 像这样的东西 为此 我在视图顶部添加了一个导航栏 然后在 XCode 设计器中添加了 2 个栏按钮项 我将左侧按钮的标识符设置为 添加 将右侧按钮的标识符设置为 编辑 当我单击 编辑 时 我想将文本更改
  • 如何刷新 WatchApp 复杂功能

    所以我正在尝试更新headerTextProvider 每一秒都有一个Timer scheduledTimer withTimeInterval 1 repeats true timer in 我想这不是正确的做法吗 MY STUFF HE
  • 像 peek and pop 一样手动振动 iPhone 6S?

    如何手动触发类似单击的振动 就像使用 peek pop 或应用程序快捷方式时发生的振动一样 这个方法很容易实现 而且效果非常好 我自己尝试过 import AudioToolbox AudioServicesPlaySystemSound
  • iOS Swift:谷歌登录错误

    我正在关注this https developers google com identity sign in ios sign in ver swift before you begin使用 swift 在我的 iOS 应用程序中添加 go
  • “无法连接到 iTunes Store”

    昨晚 应用内购买没有在 iOS7 模拟器设备上显示 但今天我什至没有更改代码 我也开始在 iOS 8 设备上遇到相同的错误 这是我的课 class InAppC UITableViewController SKProductsRequest
  • UICollectionView - 如果选择了单元格,则不会调用 didDeselectItemAtIndexPath

    我做的第一件事是设置选定的单元格 UICollectionViewCell collectionView UICollectionView collectionView cellForItemAtIndexPath NSIndexPath
  • 构建并运行在 xcode 中禁用

    有一些应用程序显示构建并运行图标已禁用 这使我无法运行该应用程序 并非所有应用程序都会发生这种情况 但只有少数应用程序会发生这种情况 它主要发生在 facebook 应用程序和其他一些应用程序中 有人能知道可能是什么问题吗 我已经尝试了更改
  • RestKit:如何获取简单的 JSON 字符串数组?

    我应该如何使用 RestKit 来获取像这样的 JSON 字符串数组 Paris London Brussels New York 我尝试进行对象映射 但由于没有关键路径或属性 我不知道要映射什么 我什至不需要映射 结果可能只是一个数组或字
  • 在 Xamarin.Forms 中添加方向更改布局

    我需要实现的是 在将屏幕从纵向更改为横向时向现有页面添加布局 我已经成功地使用检测方向变化void OnSizeAllocation 双倍宽度 双倍高度 但我无法为此事件添加布局 我的示例 C 代码是 public class MyLayo
  • 在类型中找不到枚举大小写开关

    有人可以帮我解决这个问题吗 我有以下内容public enum public enum OfferViewRow case Candidates case Expiration case Description case Timing ca

随机推荐

  • 授予对其他 MySQL 数据库的权限会导致问题

    我有一个用户 myuser 和两个数据库 db1 and db2 myuser 已经有使用权db1我想授予他额外的权限来使用 db2 通过使用以下查询 GRANT ALL ON db2 TO myuser localhost 在我运行拨款声
  • 是否有一个表保存 sysobjects.xtype 描述的列表?

    根据sysobjects 文档 https msdn microsoft com en us library ms177596 aspx sysobjects xtype可以是以下对象类型之一 xtype Description AF Ag
  • 使用 Node 查找 PDF 页数(在 Windows 上)

    我做了很多研究 我想还不够 并试图找到一个易于使用的库来使用 Node js 查找 PDF 的页数 该库需要可在 Windows 操作系统上使用 有人知道如何最好地解决这个问题吗 最坏的情况是 我正在考虑使用 PhantomJS 和 PDF
  • 如何减少 Node 应用程序在 Google App Engine 上的部署时间

    现在时间约为 10 分钟 但我的应用程序在 npm install 上使用了 2 分钟 应用程序引擎在每次部署时都会执行此操作 然后运行大约 5 秒 为什么需要这么长时间 有什么技巧可以降低这个时间吗 我在其他地方听说这是因为改变了路线 并
  • Cython 动态库链接

    我实际上正在尝试将现有的 C 库链接到我的 Cython 程序 我可以访问该库的入口点标头 h 其中所有函数声明为 EXPORT API int stdcall LibFunction 我想EXPORT API用于创建 dll declsp
  • 可编辑列表视图

    我希望在 C winforms 应用程序中创建一个可编辑的 ListView 用户可以双击单元格来更改其内容 如果有人能为我提供一些指导和 或示例 那就太好了 我不打算使用任何商业产品 你问错了问题 ListView 不是正确的控件 使用数
  • 我应该使用内存数据库而不是模拟我的存储库吗?

    我喜欢在测试时使用内存数据库 例如 SQLite 的想法 而不是为我的存储库创建模拟 这样我还可以测试我的存储库的代码 而不会出现任何性能问题 该策略的优点和缺点是什么 如果我使用 ORM 我通常倾向于在内存数据库中使用 sqlite 来测
  • 如何将 pandas DataFrame 保存到 Excel 文件?

    我正在尝试从 Web 源加载数据并将其保存为 Excel 文件 但不知道该怎么做 我应该怎么办 import requests import pandas as pd import xmltodict url https www kstan
  • Phonegap 应用程序性能与本机应用程序性能

    我们正在考虑构建一个条形码扫描应用程序 我们正在考虑使用 PhoneGap 但我们唯一担心的是速度 该应用程序要做的只是扫描条形码并检查服务器以查看其是否有效 该应用程序非常频繁地使用相机通过图像扫描条形码 我的主要问题是 通过phoneg
  • 从Matlab到C++特征矩阵运算——向量归一化

    将一些 Matlab 代码转换为 C 问题 如何在 C 中 连接矩阵中的两个向量 已经找到解决办法了 标准化每个数组 pts col 除以它的第三个值 1和2的Matlab代码 1 A 3x1 vector d0 d1 double B d
  • 是否可以将附件视图的顺序更改为 drupal 页面视图?

    我有一个页面显示的视图 其中基本上包含内容 A 该内容存在于一列中 此外 我还有另外 6 个附件显示 在另一列中显示内容 B C D E 等 是否可以修改附加视图的显示顺序 现在我已将它们全部设置为附加在内容 A 页面之后 我不是 100
  • 如何在列之间留出空间?

    我有一个文本文件 如下所示 我想在第五列中的字符和数字之间留一个空格 我怎样才能用 awk 做到这一点 cxe 911 bv heg A1029 53 030 bvf 912 cv lya A1030 51 99 Desired outpu
  • 将 HTML 表格导出到 Excel 在 IE 中不起作用

    将 HTML 表格导出到 Excel 在 Chrome 和 Firefox 中工作正常 但在 Internet Explorer 10 中不起作用 var tableToExcel function var uri data applica
  • 定位彩条 - Matplotlib

    我有一个合并两个数据的图 鉴于此 我必须显示两个不同的颜色条 每个数据一个 我目前正在绘制数据如下 plt figure Data 1 fig plt imshow data1 interpolation nearest cmap bina
  • C# 奇怪的精度丢失 int 到浮动和向后

    当尝试从 int 转换为 float 并向后转换时 会发生奇怪的事情 原始示例代码 整数值 28218681 val 28218681 浮点 fVal 浮点 val fVal 2 821868E 07 int val2 int fVal v
  • PHP SQLSRV:sqlsrv_query() 是否可以正确地准备 select 语句?

    TL DR Does sqlsrv query 做同样的工作select陈述比sqlsrv prepare and sqlsrv execute 关于准备好的陈述 做什么 我怎样才能做一个安全的select陈述 一点历史 我是 PHP 开发
  • Opencv 3D 来自立体对中的点

    OpenCV 中是否有一个简单的函数可以从立体相机对中获取对象的 3D 位置和姿态 我用棋盘校准了相机和基线 我现在想要获取一个已知的物体 就像同一个棋盘一样 在它自己的坐标中具有已知的 3D 点 并找到真实世界的位置 在相机坐标中 有一些
  • 在 Visual Studio 中启动 Web API 项目的最简洁方法(无视图)

    删除 Visual Studio API 模板通常附带的所有额外内容 如视图和其他如果您只想拥有 WebAPI 服务则不需要的内容 的最干净方法是什么 我假设 VIEWS 文件夹用于 MVC 视图 也许我错了 它需要有一个正在运行的 API
  • Python就地写入文件任意位置

    我正在尝试在 python 中就地编辑文本文件 它非常大 因此无法将其加载到内存中 我打算替换我在里面找到的逐字节字符串 with f as open filename txt r b if f read 8 01234567 f seek
  • UIWebView 中自动填充用户名和密码

    我正在为我做一个非常简单的应用程序 当我启动这个应用程序时 它只会将我带到这个网页https social tre it expert https social tre it expert 我想自动登录 那么有没有办法自动填写用户名和密码