Должен ли javascript для iOS * загружаться * фреймворком WebKit в дополнение к выполнению в его фреймворке? - PullRequest
3 голосов
/ 10 декабря 2011

Соглашение гласит:

3.3.2 Приложение внутреннего использования не может загружать или устанавливать исполняемый код. Интерпретированный код может использоваться только в Приложении, если все сценарии, код и интерпретаторы упакованы в Приложении и не загружены. Единственным исключением из вышеизложенного являются скрипты и код, загружаемые и запускаемые встроенной в Apple платформой WebKit.

В частности, там написано "... код загружен .. платформой Webkit".

Кто-нибудь знает, если для нативного приложения, использующего UIWebView, это означает, что Javascript должен автоматически загружаться Webkit, т. Е. Вследствие того, что пользователь нажимает на ссылку внешней ссылки. Или, если было бы приемлемо загрузить сценарии, создав собственное HTTP-соединение с сервером и загрузив их самостоятельно, но они будут выполняться в Webkit (через UIWebView)?

Я предполагаю, что это ограничение предназначено для целей безопасности, поэтому безопасность сводится к ограничению выполнения внутри WebKit, в отличие от того, откуда загружаются скрипты?

Я понимаю, что вряд ли кто-то может ответить на этот вопрос, кроме Apple, но спекулятивные ответы очень приветствуются.

Спасибо

1 Ответ

4 голосов
/ 10 декабря 2011

Исключение, которое делает Apple, основано на изолированной природе Webkit / UIWebView - по сути, она обеспечивает «разрешенную» среду с возможностью написания сценариев именно потому, что она настолько хорошо изолирована. Если вы предоставляете UIWebView, это не имеет никакой реальной разницы, если пользователь переходит на сайт, который затем выполняет некоторый Javascript в браузере, по сравнению с тем, как вы программно получаете некоторый Javascript через NSURLConnection или другим способом, а затем загружаете его в UIWebView. перезагрузка файла HTML или использование "stringByEvaluatingJavaScriptFromString".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...