Вот и пришла наконец эта задача ко мне от реального заказчика. Надо запилить Google Address Autocomplete по типу того как работает стандартный Address Field компонент. Вот только заказчика не устраивает стандартный. Он хочет чтобы Autocomplete возвращал еще County и Apartments/Unit. Стандартный не может, а если работать напрямую с Google Places API то можно.
Я где-то полтора года назад когда возвращался из питона на SF пробовал замутить что-то похожее вокруг Google Maps API (https://salesforce-developer.ru/sozdaem- ... 02472762). Получилось даже но ценой немалых костылей. Вот думаю а что-нибудь поменялось за эти полтора года? Можно как-то загрузить и использовать Javascript от гугла в LWC?
У кого есть опыт поделитесь. Пока все что мне нужно это возможность загружить и использовать JS либы от гугла. (через Static Resources не предлагать)
на сколько я помню, когда пробовал последний раз - гугл требует(или рекомендует) чтобы все его скрипты подключались только с домена самого гугла, то есть никаких скачиваний и добавлений в статик ресурсы. а лцв требует наоборот - только статик ресурсы, ну или подключение напрямую в vf страницах.
но я вроде когда-то видел, что кто-то подгружал жс через жс. то есть создавали тег script src=google.blablabla в контроллере lwc. увы никогда не пробовал, было лень и не было надобности)
создавали имеется ввиду https://developer.mozilla.org/en-US/docs ... eElement
Не получается. LockerService не дает. Я думаю что в SF все предусмотрели от таких хитрых типа меня. scr тег меняется на безопасный, а если пробовать вставить script с куском кода (что-то намутить с document.write), то он вообще удаляется. Может и есть какой экзотический способ обойти LockerService, но я в интернете упоминаний не нашел. Придется по старинке через iframe + VF мутить
Вот я туплю. Блин, зациклился на этом JS и голову ломаю. Мне этот JS нафиг по сути не нужен. Можно же дергать Google API напрямую GET запросами. Мне там по сути пару методов надо.
То есть просто делается бандл с нужными Google API и кладется в компоненту. Правда не знаю, что там по объему получится и как это отразится на производительности.
Но тогда обязательно нужно настроить фильтр доступа к Google API по кастом домену Salesforce орга. Иначе можно будет позаимствовать доступ)
то можно же в LWC компоненту и положить минифицированною библиотеку и подключать в LWC
Ну так это вроде ничем не отличается от того чтобы положить в статик ресурсы js либу. Не знаю как работает JS от гугл внутри, но мне кажется что его надо именно от самого гугла скачивать, а не использовать локальную копию. Гугловский JS в отличии от либ типа JQuery не имеет версионности и меняется на лету. А ты когда подключаешь его на страницу используешь последнюю рабочую версию. А если сделать локальную копию и куда-то положить то есть большая вероятность что через некоторое вреря js код просто перестанет работать.