Функция сканирования кредитной карты и UIWebView или WKWebView
У меня есть форма кредитной карты, которая показывает функцию iOS8 "Сканировать кредитную карту" при просмотре в Safari на моем iPhone. Работает отлично. Пользователи могут сканировать свою кредитную карту с помощью камеры на своем iPhone. Я сделал это, добавив теги автозаполнения HTML5 (cc-number, cc-exp-year, cc-exp-month) в поля ввода. Затем Safari автоматически распознает это и активирует функцию сканирования. Однако я хочу отобразить это в веб-представлении внутри моего приложения для iOS. Форма показывает, но функция сканирования нет. Это возможно?
Это тот же вопрос, что и: Доступна ли опция сканирования кредитной карты в WebView?
Я хотел сделать комментарий там, но я новый пользователь, поэтому я не могу?
1 ответ
Я экспериментировал и не смог сделать эту работу в UIWebView или WKWebView. Исходный html-файл обслуживался с сервера с поддержкой https. "Кредитная карта автозаполнения" отображается при доступе к URL-адресу из Safari, но не отображается при встраивании в iOS. Я не думаю, что эта функциональность поддерживается в UIWebView или WKWebView, к сожалению.
<!DOCTYPE html>
<html>
<head>
<title>Scan credit card using iOS</title>
<style type="text/css">
/*<![CDATA[*/
input {height:1.5em;width:95%}
input[type="text"] {font-size: 2.5em}
body {background-color:lightgray;font-size: 3em;font-family: sans-serif;}
#purchase {font-size: 2em;font-weight: bold;height:1.2em}
/*]]>*/
</style>
</head>
<body>
<form action="https://yoursite.com/credit-card-purchase" method="post">
<label for="nameoncard">Name on Card</label>
<input autocomplete="cc-name" id="nameoncard" name="nameoncard" type="text">
<label for="ccnumber">Credit Card Number</label>
<input autocomplete="cc-number" id="ccnumber" name="ccnumber" type="text">
<label for="cc-exp-month">Expiration Month</label>
<input autocomplete="cc-exp-month" id="cc-exp-month" name="cc-exp-month" type="text">
<label for="cc-exp-year">Expiration Year</label>
<input autocomplete="cc-exp-year" id="cc-exp-year" name="cc-exp-year" type="text">
<label for="cvv2">CVV</label> <input autocomplete="cc-csc" id="cvv2" name="cvv2" type="text">
<input name="submit" type="submit" value="Submit">
</form>
</body>
</html>
- (void)viewDidLoad {
[super viewDidLoad];
NSURL *nsurl = [NSURL URLWithString:@"https://www.myhttpsserver.co.uk/test.html"];
BOOL showWKWebView = YES;
if (showWKWebView) {
//WKWebView version
WKWebViewConfiguration *theConfiguration = [[WKWebViewConfiguration alloc] init];
WKWebView *webView = [[WKWebView alloc] initWithFrame:self.view.frame configuration:theConfiguration];
NSURLRequest *nsrequest=[NSURLRequest requestWithURL:nsurl];
[webView loadRequest:nsrequest];
[self.view addSubview:webView];
} else {
//UIWebView version
UIWebView *webView = [[UIWebView alloc] initWithFrame: self.view.frame];
webView.delegate = self;
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:nsurl cachePolicy: NSURLRequestUseProtocolCachePolicy timeoutInterval: 5.0];
[webView loadRequest:request];
[self.view addSubview:webView];
}
}