ringa_lee2017-04-18 09:36:42
터우티아오를 설치하지 않았지만 거의 모든 뉴스 앱의 본문이 웹뷰입니다.
NetEase News를 예로 들면 뉴스 텍스트를 로드한 후 js에 이를 비워 두도록 지시하여 클라이언트가 다음 공유, 광고, 인기 게시물, 관련 뉴스 등을 채울 수 있도록 합니다. 아니면 스크롤뷰에 텍스트를 표시하는 웹뷰를 넣고 그 아래에 공유, 광고, 인기글 등을 넣어보세요.
webview와 js 간의 통신 방법을 알아야 합니다. 클라이언트 측 컨트롤처럼 webview를 패키징하는 방법은 페이지의 전체 높이 가져오기, 썸네일 직사각형 가져오기, 메뉴 사용자 정의 등 실제로 어렵지 않습니다. , 본문의 배경 투명도 설정, 클라이언트가 공유, 댓글 인터페이스 열기 등과 같은 특정 코드를 실행하도록 합니다.
이것은 일반적인 아이디어입니다. 오래전에 뉴스 텍스트 페이지와 비슷한 것을 만들었지만 js는 웹 및 기본 컨트롤을 지원하여 페이지를 임의로 제어할 수 있습니다. 상사는 클라이언트가 웹 애플리케이션처럼 되어 언제든지 인터페이스를 변경하고 이벤트 페이지를 추가하는 등의 작업을 수행할 수 있기를 바랍니다.
json 전달에 관해 말씀하신 내용은 json 전달은 단순히 데이터를 전달하는 방법인데, 문의하신 내용은 인터페이스를 구현하는 방법입니다. 둘 사이에는 아무런 관계가 없습니다.
페이지 캐싱에 대해 좀 더 자세히 알려주세요. 뉴스 세부정보 페이지와 같이 자주 표시되는 Webview에는 일반적으로 페이지 캐싱이 필요합니다. html/css/js를 캐시하거나 이를 앱으로 패키징하거나 둘 다를 수행할 수 있습니다. 캐시된 페이지는 스트레스 없이 로드됩니다. NetEase 뉴스의 본문이 json으로 전송된다는 것을 알고 있다면 앱 번들, 문서/라이브러리 등의 디렉토리를 살펴볼 수 있으며 페이지 캐시가 있어야 합니다.
그런 다음 데이터가 나옵니다. 캐시된 인터페이스는 스타일만 있고 데이터는 없는 빈 선반입니다. 데이터를 입력하는 방법은 매우 유연하며 개인 취향과 실제 테스트 결과에 따라 달라집니다. Ajax에서 데이터를 요청한 다음 p를 채울 수도 있고, 쉘프 페이지가 로드된 후 클라이언트가 js를 실행하여 이를 채울 수도 있고, 캐싱에 참여하지 않는 부분(예: iframe)이 자체 데이터를 가져오도록 할 수도 있습니다. 아니면 둘 다.
인기 게시물, 게시물 수 등의 데이터를 얻기 위해 세부정보 페이지를 열 때 http 요청이 있기 때문에 이때 뉴스 텍스트도 클라이언트에 반환할 수 있으므로 클라이언트가 모든 데이터와 페이지 표시가 더 빨라집니다. 이것은 단지 최적화 지점일 뿐입니다.
전체 프로세스는 다음과 같습니다.
pushController -> 모든 보기 숨김 -> 페이지 데이터 채우기 ->