Функция сканирования кредитной карты и 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];
    }
}
Другие вопросы по тегам