Отображение карты в приложении, лучше для пользователя - PullRequest
0 голосов
/ 05 февраля 2020

У меня есть приложение iOS, написанное на Swift, где я использую карту, чтобы показать местоположение некоторых магазинов пользователю. При нажатии кнопки отображается карта текущего магазина.

Она уже работает, но, поскольку я не полностью удовлетворена, я решила написать этот пост, чтобы получить совет по улучшению.

Во-первых, вот соответствующий код в приложении.

import UIKit
import WebKit

class Shop_ViewController: UIViewController {
    ......
    var webView: WKWebView!

    override func viewDidLoad() {
        super.viewDidLoad()
        ......
        let webConfig = WKWebViewConfiguration()
        webView = WKWebView(frame: view.bounds, configuration: webConfig)
        webView.isHidden = true
        view.addSubview(webView)
    }

    ......

    @objc func showMapForShop() {
        // This function fires, when the appropriate button is tapped.

        var urlStr = "https://maps.google.com/maps"
        urlStr += "?q=\(shopObject.gPS!)"
        urlStr += "&iwloc=A&hl=\(NSLocale.preferredLanguages[0])"
        let webReq = URLRequest(url: URL(string: urlStr)!)
        webView.load(webReq)
        view.bringSubviewToFront(webView)
        webView.isHidden = false
    }

Во-вторых, вот скриншот того, как выглядит отображение карты.

enter image description here

Итак, как уже упоминалось выше, это работает. Но (для начала) верхняя и нижняя часть изображения (отмечены серым цветом сбоку) теряют место. Действительно, 99,9% пользователей не будут заботиться о координатах точки и были бы намного счастливее, имея больше места для просмотра карты. Конечно, красная метка на картинке должна быть сохранена, чтобы показать важное местоположение.

Я собрал это вместе, прочитав net, и я также прочитал о протоколах WKUIDelegate и WKNavigationDelegate. Но пока я вижу, что я ими не пользуюсь. Последний вопрос:

Есть ли лучший способ сделать это? И получить больше удовлетворенности пользователей?

Для информации, я использую Xcode 11.3.1.

1 Ответ

3 голосов
/ 05 февраля 2020

Проблема в том, что вы не используете карту. Вы используете веб-сайт, Google Maps. Так что веб-сайт полностью отвечает за то, что отображается.

Так что используйте карту. Вместо веб-представления используйте представление карты (MKMapView). Теперь вы полностью отвечаете за экран, куда идет карта, отображаемый регион, аннотация (ваша «красная метка»), что еще находится на экране и т. Д.

...