Как реализовать UIWebViewDelegate из плагина Cordova для iOS? - PullRequest
0 голосов
/ 03 мая 2018

У меня есть приложение Cordova, в котором я вручную изменил MainViewController.m, чтобы добавить свою собственную реализацию UIWebViewDelegate - однако я хотел бы сделать это "правильным" способом и использовать плагин (так что я действительно могу обрабатывать код платформы как артефакт сборки).

Из этого руководства я вижу, что я должен иметь возможность установить UIWebViewDelegate из кода моего плагина; Однако это не работает. Моя реализация не вызывается.

В коде кажется, что он всегда использует CDVViewController в качестве делегата, независимо от того, что передается.

Это ошибка? Я просто делаю это неправильно? Как правильно это сделать?

Мой сценарий здесь состоит в том, чтобы перехватить событие didFailLoadWithError для некоторой специальной обработки (наше приложение Cordova использует удаленные ресурсы, и я хочу разрешить вариант повтора, если они не загружаются). Это работает очень хорошо, когда я изменяю исходный код приложения напрямую.

1 Ответ

0 голосов
/ 15 мая 2018

После некоторой консультации с людьми из Кордовы кажется, что это ошибка:

https://issues.apache.org/jira/browse/CB-14076

Патч отправлен и принят для будущего выпуска cordova-ios.

Для всех, кто хочет сделать это в будущем, я предлагаю вашей реализации UIWebViewDelegate сохранить указатель на предыдущий набор делегатов на UIWebView и переслать все методы этому делегату. Это необходимо для корректной работы Cordova, если вы не копируете / не вставляете функциональность существующего делегата в свой собственный.

...