iOS10: Webview에서의 urlscheme 열기

ios10에서는 webview 안에서
plist의 LSApplicationQueriesSchemes에 등록하지 않은 urlscheme으로 열려고 할때 아무 반응없이 열리지 않도록 변경되었습니다. titanium문제는 아니고 ios10자체가 그렇습니다. 이거 관련해서는 딱히 문서에 언급되거나 하지 않았은 것 같아요.
따라서 따로 beforeload이베트를 받아서 해당 url을 Ti.Platform.openURL을 통해 열어야 합니다. (LSApplicationQueriesSchemes에 등록하지 않을 경우 Ti.Platform.canOpenURL로 해당 urlshcem이 깔려있는지 파악할 순없지만 openURL을 통해 열수 있습니다.)

Ti 5.5.1 기준 iphone/Classes/TiUIWebView.m파일의 750번째 줄을 다음과 같이 if 주건문을 바꾸면 됩니다.

// if ([uiApp canOpenURL:newUrl] && !willHandleUrl)
if (!willHandleUrl)
{
	[uiApp openURL:newUrl];
	return NO;
}

무엇보다도 pg사를 통한 결제에서 다양한 카드사 앱을 실행하고 설치해야하는 과정에서 문제가 됩니다.
이런 저런(?) 이유로 저는 그냥 sdk를 수정해서 해결 했습니다.

다음은 참고한 링크들 입니다.

1개의 좋아요

5.5.0에서 수정도나 했더니…이래저래 다른게 문제네요…^^

iOS 10에서 번거롭게 바뀐게 좀 많네요…