我正在通过XCode构建IOS应用程序,该应用程序具有一个带有用户名和密码输入的登录屏幕。我还有一个带有登录屏幕的网站,可以将您带到我的数据库。我不想通过IOS App与数据库对话。当我点击IOS App上的登录按钮时,我希望用户名和密码字段中的信息可以在网站上填写。我实质上是在IOS应用程序上制作一个外观更好的GUI,该IOS应用程序仅从网站读取其所有信息,就像该网站在数据库中查找信息一样。我不确定如何做到这一点,但是如果您能指出正确的方向,将会很有帮助。
编辑:这是我的IOS快速代码的修改版本。只是想知道您将在哪里添加将IOS应用程序输入链接到网站的代码。
import UIKit
class LoginController: UIViewController {
//defining labels for username and password
let usernameLabel: UILabel = {
let ULabel = UILabel()
ULabel.text = NSLocalizedString("Username", comment: "")
ULabel.textColor = .gray
ULabel.textAlignment = .center
ULabel.font = ULabel.font.withSize(25)
return ULabel
}()
let passwordLabel: UILabel = {
let PLabel = UILabel()
PLabel.text = NSLocalizedString("Password", comment: "")
PLabel.textColor = .gray
PLabel.textAlignment = .center
PLabel.font = PLabel.font.withSize(25)
return PLabel
}()
//defining text fields for username and password
let usernameTextField: UITextField = {
let UTextFieldDesign = UITextField()
UTextFieldDesign.setBottomBorder(backGroundColor: BackColor, borderColor: LoginButtonColor)
UTextFieldDesign.textColor = .white
UTextFieldDesign.layer.cornerRadius = 3.0
//UTextFieldDesign.placeholder = " Username"
UTextFieldDesign.textColor = .white
//UTextFieldDesign.backgroundColor = .lightGray
return UTextFieldDesign
}()
let passwordTextField: UITextField = {
let PTextFieldDesign = UITextField()
PTextFieldDesign.setBottomBorder(backGroundColor: BackColor, borderColor: LoginButtonColor)
PTextFieldDesign.textColor = .white
PTextFieldDesign.isSecureTextEntry = true
PTextFieldDesign.layer.cornerRadius = 3.0
//PTextFieldDesign.backgroundColor = .lightGray
return PTextFieldDesign
}()
//designing login button for login screen
let loginButton: UIButton = {
let LButton = UIButton(type: .system)
LButton.layer.cornerRadius = 25.0
LButton.setTitleColor(.white, for: .normal)
LButton.setTitle(NSLocalizedString("Sign In", comment: ""), for: .normal)
LButton.titleLabel?.font = .systemFont(ofSize: 20)
LButton.backgroundColor = LoginButtonColor
LButton.addTarget(self, action: #selector(loginAction), for: .touchUpInside)
return LButton
}()
override func viewDidLoad() {
super.viewDidLoad()
self.hideKeyboardWhenTap()
navigationController?.isNavigationBarHidden = true
navigationController?.isToolbarHidden = true
view.backgroundColor = UIColor(red: 203/255, green: 215/255, blue: 242/255, alpha: 1.0)
setupTextFieldComponents()
setupLoginButton()
}
override func viewWillAppear(_ animated: Bool) {
navigationController?.isNavigationBarHidden = true
navigationController?.isToolbarHidden = true
super.viewWillAppear(animated)
}
@objc func loginAction() {
let selectioncontroller = SelectionController()
navigationController?.pushViewController(selectioncontroller, animated: true)
}
fileprivate func setupTextFieldComponents() {
setupUsernameText()
setupUsernameField()
setupPasswordText()
setupPasswordField()
}
fileprivate func setupUsernameText() {
view.addSubview(usernameLabel)
usernameLabel.translatesAutoresizingMaskIntoConstraints = false
usernameLabel.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 20).isActive = true
usernameLabel.leftAnchor.constraint(equalTo: view.leftAnchor, constant: 20).isActive = true
usernameLabel.rightAnchor.constraint(equalTo: view.rightAnchor, constant: -20).isActive = true
}
fileprivate func setupPasswordText() {
view.addSubview(passwordLabel)
passwordLabel.translatesAutoresizingMaskIntoConstraints = false
passwordLabel.topAnchor.constraint(equalTo: usernameTextField.bottomAnchor, constant: 15).isActive = true
passwordLabel.leftAnchor.constraint(equalTo: view.leftAnchor, constant: 20).isActive = true
passwordLabel.rightAnchor.constraint(equalTo: view.rightAnchor, constant: -20).isActive = true
}
fileprivate func setupLoginButton() {
view.addSubview(loginButton)
loginButton.anchors(top: passwordTextField.bottomAnchor, topPad: 15, bottom: nil, bottomPad: 0,
left: passwordTextField.leftAnchor, leftPad: 0, right: passwordTextField.rightAnchor,
rightPad: 0, height: 50, width: 0)
loginButton.translatesAutoresizingMaskIntoConstraints = false
}
fileprivate func setupUsernameField() {
view.addSubview(usernameTextField)
usernameTextField.anchors(top: usernameLabel.bottomAnchor, topPad: 12, bottom: nil, bottomPad: 0,
left: view.leftAnchor, leftPad: 24, right: view.rightAnchor,
rightPad: 24, height: 30, width: 0)
usernameTextField.translatesAutoresizingMaskIntoConstraints = false
}
fileprivate func setupPasswordField() {
view.addSubview(passwordTextField)
passwordTextField.anchors(top: passwordLabel.bottomAnchor, topPad: 12, bottom: nil, bottomPad: 0,
left: view.leftAnchor, leftPad: 24, right: view.rightAnchor,
rightPad: 24, height: 30, width: 0)
passwordTextField.translatesAutoresizingMaskIntoConstraints = false
}
}
最佳答案
您可以在ViewController上创建隐藏的WKWebview,而WK的URL是您的Web用户登录URL,然后通过View Controller输入将值发布到Webinterface。
NSString *scriptSource = [NSString stringWithFormat:@" document.queryString('#username').value='@%';document.queryString('#password').value='@%';document.querySelector('form').submit;",[inputUsername text],[inputPassword
WKUserScript *userScript = [[WKUserScript alloc] initWithSource:scriptSource
injectionTime:WKUserScriptInjectionTimeAtDocumentEnd
forMainFrameOnly:YES];
[wkWebView.configuration.userContentController addUserScript:userScript];
[wkWebView reload];
关于ios - xcode-将登录屏幕输入链接到网站输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60686064/