我正在构建一个iPhone应用程序,它只是一个UIWebView具有基于表单的登录的现有移动网站.当我在iPhone Safari上登录移动网站时,系统会提示我保存用户名/密码,然后当我稍后返回该网站时自动填充.
我想启用相同的功能UIWebView,但对于我的生活,我无法弄清楚如何做到这一点.有任何想法吗?
按照Michael的基本模型(参见接受的答案),我能够完成这项工作.这是我做的:
设置数据
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType; {
//save form data
if(navigationType == UIWebViewNavigationTypeFormSubmitted) {
//grab the data from the page
NSString *username = [self.webView stringByEvaluatingJavaScriptFromString: @"document.myForm.username.value"];
NSString *password = [self.webView stringByEvaluatingJavaScriptFromString: @"document.myForm.password.value"];
//store values locally
[[NSUserDefaults standardUserDefaults] setObject:username forKey:@"username"];
[SFHFKeychainUtils storeUsername:username andPassword:password forServiceName:@"MyService" updateExisting:YES error:nil];
}
}
Run Code Online (Sandbox Code Playgroud)
获取数据
- (void)webViewDidFinishLoad:(UIWebView *)webView{
//verify view is on the login page of the site (simplified)
NSURL *requestURL = [self.webView.request URL];
if ([requestURL.host isEqualToString:@"www.mydomain.com"]) …Run Code Online (Sandbox Code Playgroud) Android O具有支持字段自动填充的功能.有什么办法可以为特定的应用程序禁用它.那是我想强制我的应用程序不使用自动填充服务.
可能吗 ?
要阻止整个活动的自动填充,请在活动的onCreate()中使用:
getWindow()
.getDecorView()
.setImportantForAutofill(View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS);
Run Code Online (Sandbox Code Playgroud)
有没有比这更好的方法?
android autofill textview android-8.0-oreo android-autofill-manager
我如何进行"零填充"整数?
即
1 becomes 0001
40 becomes 0040
174 becomes 0174
Run Code Online (Sandbox Code Playgroud) 是否可以使用代码选择性地禁用文本字段中的自动填充功能?
我正在ASP.Net AJAX中开发我的自定义代码来搜索数据库中的建议,我想阻止浏览器建议在用户开始在文本框中输入时出现.
我正在寻找适用于最现代浏览器(IE 7和8,Firefox,Safari和Chrome)的解决方案.如果解决方法是在Javascript中,那就没关系.
我的问题
我必须打开谷歌自动填写我的网站上的登录,但是当我想编辑我的帐户信息或编辑其他用户帐户信息(作为管理员)时,它现在尝试自动填充该登录数据.它在奇怪的地方填写我的数据.问题似乎是Chrome自动使用一种密码填充任何输入,然后输入任何输入(见下图).如果我在它之前放置一个选择框,那么它将不会自动填充.

我很明显不想每次编辑用户时都要通过并删除密码/手机.我也不希望我的用户在编辑自己的帐户时必须这样做.我该如何删除它?
我尝试了什么 (没有成功)
我发现了什么
我发现Google可能会故意忽略自动填充功能:Google无视自动填充功能
我发现其他用户发布了类似的问题,但该解决方案对我不起作用:停用Chrome自动填充功能
我还发现另一个用户正在做一个涉及创建一个隐藏密码字段的工作,该字段将采用谷歌自动完成,我更喜欢一个更干净的解决方案,因为我的情况下我还需要一个隐藏的输入,以避免两者都自动填充:禁用自动填充在chrome中而不禁用自动完成功能
我遇到了崩溃问题我们面临的一个空指针异常仅与奥利奥的自动填充相关.下面是堆栈跟踪
Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method
'boolean com.android.server.autofill.RemoteFillService$PendingRequest.cancel()' on a null object reference
at android.os.Parcel.readException(Parcel.java:1965)
at android.os.Parcel.readException(Parcel.java:1905)
at android.app.IActivityManager$Stub$Proxy.reportAssistContextExtras(IActivityManager.java:8297)
at android.app.ActivityThread.handleRequestAssistContextExtras(ActivityThread.java:3210)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1913)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6944)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
Caused by android.os.RemoteException: Remote stack trace:
at com.android.server.autofill.RemoteFillService.cancelCurrentRequest(RemoteFillService.java:177)
at com.android.server.autofill.Session.cancelCurrentRequestLocked(Session.java:465)
at com.android.server.autofill.Session.access$1000(Session.java:118)
at com.android.server.autofill.Session$1.onHandleAssistData(Session.java:322)
at com.android.server.am.ActivityManagerService.reportAssistContextExtras(ActivityManagerService.java:14713)
Run Code Online (Sandbox Code Playgroud)
这并没有说明为什么会发生这种情况的确切原因.
在MacOS上的Google Chrome浏览器(版本75.0.3770.142)中,当我将鼠标悬停在自动填充建议上时,输入中的字体大小变得非常小(字体系列也会更改),但是在选择建议后,它又恢复了正常大小。
是什么导致这种行为?
我们网站的几个部分用户需要输入一些信息,Firefox的自动填充会在页面加载时接管 - 大多数都是错误的!
例如,有一个"传真号码"字段,对于某些用户,Firefox一直在填写他们的电子邮件地址.如果他们没有看到这个并且他们去提交表格,验证人向他们抱怨它不是有效的数字格式.
这确实让我们的销售人员感到担忧,因为当他们去查看客户页面时,他们有时会看到它充满了自己的个人信息.
有没有办法阻止Firefox这样做?
我们的一位用户刚刚提到他们的浏览器Autofill不会导致JS onChange事件触发; 这导致我们的用户注册问题.
这是设计的吗?有办法解决它吗?