#javascript #objective-c #uiwebview #ios8
#javascript #objective-c #uiwebview #ios8
Вопрос:
Я тестирую свой проект в iOS 8 preview 2. И теперь я сталкиваюсь с двумя проблемами, связанными с uiwebview
. Я использую следующий код для внедрения своего скрипта
NSString *jsCLOSE_WINDOW = @"function CLOSE_WINDOW(){
document.location ='mySchema://FUNCTION=CLOSE_WINDOW';
}";
[self.webView stringByEvaluatingJavaScriptFromString:jsCLOSE_WINDOW];
в "-(void)webViewDidFinishLoad:(UIWebView *)webView"
и получить ответ в
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
он отлично работает в iOS 7.1 и более ранних версиях.
Но в iOS 8 предварительный просмотр 2
1.document.location = 'mySchema://FUNCTION=CLOSE_WINDOW';
кажется, больше не работает? Я не могу получить ответ в "shouldStartLoadWithRequest" 2.in iOS 7.1 и более ранних версий каждый раз перенаправляет страницу на другую
(ex:page1.html -> page2.html -> page3.html )
"webViewDidFinishLoad" будет запускаться на каждой странице.
Но в iOS 8 preview 2 это срабатывает только один раз на первой странице
Как мне это исправить?, или это новые ограничения в iOS 8? есть идеи? ценю.
Ответ №1:
После долгих поисков. Наконец, у меня есть решение, просто перейдите по ссылке здесь. проблема заключается в javascript. перепишите javascript в качестве образца стиля, и он отлично работает в iOS 8 (протестирован в Beta3) прямо сейчас.
Ответ №2:
Кажется, что iOS8 не может пройти :
или либо =
в вашем случае сразу после имени функции. Попробуйте выполнить замену из строки
document.location ='mySchema://FUNCTION=CLOSE_WINDOW';
чтобы использовать ?
метку, подобную
document.location ='mySchema://FUNCTION?CLOSE_WINDOW';
должно работать.