2010-07-15 5 views
2

Safari 브라우저를 완전히 모방 한 UIWebView를 사용하여 응용 프로그램을 빌드 할 수 있습니까?UIWebView가 Safari를 바꿀 수 있습니까?

UIWebview가 Safari에서 할 수있는 일을 할 수없는 경우가 있습니까?

+1

좀 더 구체적으로 기재 할 수 있습니까? 당신이해야 할 일에 대해 물어보십시오. – rfunduk

+0

UIWebView를 사용하여 브라우저 역할을하는 응용 프로그램을 만들 계획입니다. 브라우저에 UIWebView를 사용하고 브라우징, 자바 스크립트 또는 다른 것들을 처리하는 것과 관련하여 UIWebView가 부족하다면 내 의심은 브라우징 속도에 차이가있을 것입니다. – Krishnan

+0

UIWebView, 특히 iOS3.2에서 작동하도록 프레임 세트 페이지에서 기본 인증을 얻는 데 큰 어려움을 겪고 있습니다. –

답변

2

한 가지 점은 앱당 별도의 쿠키 저장소가 있다는 것입니다. 따라서 사용자가 Safari의 사이트 X에서 일부 환경 설정을 가지고있는 경우 브라우저의 사이트 X에 환경 설정이 없으며 그 반대의 경우도 마찬가지입니다. 그 외에도 UIWebView는 실제와 매우 흡사합니다.

+0

감사합니다. 나는 내가 만들고자하는 iPhone Safari와 내 기본 App 브라우저간에 아무 것도 공유 할 수 없다는 것을 이해할 수 있습니다. 자동 보충 기능을 구현할 수 있습니까? – Krishnan

0

UIWebView 구성 요소가 공개하는 공용 API를 사용하여 Safari 브라우저를 모방 한 응용 프로그램을 쉽게 작성할 수 없습니다. 한 가지는 UIWebView 대리자 메서드를 살펴보십시오. 로드하려는 페이지 내부에 프레임이있는 경우 사용자가 iframe/프레임 내부를 클릭했는지 주 문서의 링크를 클릭했는지 알기 힘듭니다.

유효하지 않은 인증서가있는 사이트에 대한 인증 처리는 UIWebView 구성 요소와 마찬가지로 특히 iframe 내부의 링크를 클릭하여 유효하지 않은 인증서가있는 사이트에 도달했을 때 어렵습니다.

0

UIWebView의 렌더링 내용이 Safari보다 훨씬 느립니다.

Safari의 Javascript 엔진은 "적시"컴파일러를 사용합니다. 들어오는 Javascript 코드를 가져 와서 iOS 장치의 ARM CPU에서 직접 실행할 수있는 머신 코드로 변환합니다. 이렇게하면 자바 스크립트 코드가 네이티브 앱의 코드와 비슷한 속도로 실행될 수 있습니다.

문제는 애플이 이러한 힘으로 타사 개발자를 신뢰하지 않는다는 것입니다. 타사 앱이 Javascript를 기계 코드로 변환하여 실행하는 능력이 있다면, 그 앱은 다른 기계 코드를 다운로드하고 실행할 수있는 힘을 갖게 될 것이고, 애플은 결코 그 코드를 검토 할 기회를 얻지 못할 것이다. App Review에서 승인되면 (개발자/해커) 다운로드 한 코드를 비밀번호 등을 기록하는 것으로 변경할 수 있습니다. UIWebView는 개발자 코드와 동일한 프로세스에서 실행되기 때문에 UIWebView는 앱의 다른 부분이 아닌 UIWebView에만이 기능을 부여 할 수 없습니다.

그래서 기본적으로 애플은 앱 스토어에서 제공하는 보안을 깨뜨리고 iOS를 공격에 더욱 취약하게 만들 수 있기 때문에 애플은이를 금지하고있다. 사파리는 사파리의 기능을 제어하기 때문에 사파리를 허용 할 수 있지만, 다른 사람이 그 능력을 남용하지 않도록 신뢰할 수는 없습니다.

관련 문제