Android 구성 요소 화 개발 경로 의 디자인 실천

현재 의 경로 구 조 를 조사 연 구 했 습 니 다.ARouter(알 리 의),Activity Router 는 모두 apt 기술 로 컴 파일 할 때 주 해 를 사 용 했 습 니 다.개인 적 인 생각 은 한 입 에 뚱보 가 되 지 못 하고 먼저 실 용적 인 것 을 만 들 었 습 니 다.VpRouter 루트 프레임 워 크 는 주로 구성 요소 화 개발 에 응용 된다
설계 목적
디 결합
  • 크로스 모듈 점프
  • 서버 설정 schema 를 편리 하 게 하고 동적 설정 점프 목 표를 실현 합 니 다
  • 4.567917.외부 에 원 격 방문 기능 을 제공 하고 크로스 응용 호출 응답 을 실현 합 니 다주요 기능 점
  • intent,http,schema 세 가지 점프 지원
  • 경로 표 는 xml 설정 을 지원 하고 사용자 정의 가 가능 하 며 다 중 경 로 를 지원 합 니 다
  • 차단기
    반사 와 암시 적 의 도 를 동시에 지원 합 니 다지지 결과
  • 매개 변수 전달 지원
  • 체인 호출
    url 모드 참조 지원
  • 여러 웹 뷰 를 설정 하여 기본 이 아 닌 웹 뷰 시작 url 을 지정 하 는 것 을 지원 합 니 다
  • 여러 prefix 설정 지원중요류
    VpRouter 단일 모델 입구 류AbsRouter 루트 추상 류 주요 코드RouterTable 경로 표
  • IRouterInterceptor(차단기)IRouterResultCallback(결과 리 셋)
  • 아 날로 그 그래프

    로드 경로 설정 파일
    
    //       application onCreate 
    VpRouter.load(getApplicationContext(),"router.xml");
    경로 설정 파일
    
    <?xml version="1.0" encoding="utf-8" ?>
    <root>
      schema-prefix>
        <prefix>vf://</prefix>
        <prefix>vipjr://</prefix>
        <prefix>vpjr://</prefix>
      </schema-prefix>
      <default-webview>vpjr://h5.page</default-webview>
      <rule>
        <schema>vpjr://h5.page</schema>
        <!--<action>webview</action>-->
        <class>com.vip.hybrid.h5container.H5WebViewActivity</class>
      </rule>
      <rule>
        <schema>vpjr://h5.page.pay</schema>
        <!--<action>webview</action>-->
        <class>com.vip.vpal.paydesk.support.h5.H5ContainerActivity</class>
      </rule>
      <rule>
        <schema>vpjr://paycode.entry</schema>
        <!--<action>1111</action>-->
        <class>com.vip.vpal.paycode.presentation.activity.PaymentEntryActivity</class>
      </rule>
      <rule>
        <schema>vpjr://guide</schema>
        <!--<action>basemodule.test.mainactivity</action>-->
        <class>com.vip.vf.android.GuideActivity</class>
      </rule>
    </root>
    
    schema-prefix:접두사default-webview:기본 webview 의 schema
  • 모든 rule 노드 는 하나의 경로 규칙 을 대표 하고 Rule 대상 으로 해석 된다
  • 사용 예시
    
    //  url    webview
    VpRouter.get().context(this).jump("http://www.vip.com?web_title=   ");
    //  webview  
    VpRouter.get().context(this).webView("vpjr://h5.page.pay").jump("http://www.vip.com");
    
    //      
    VpRouter.get()
        .context(this)
        .setInterceptor(new IRouterInterceptor() {
          @Override
          public boolean cancel() {
            return false;//return true          
          }
    
          @Override
          public Bundle addExtras() {
            return null;//  Bundle     Intent 
          }
        })
        .setResultCallback(new IRouterResultCallback() {
          @Override
          public void onSuccess() {
            //       
          }
    
          @Override
          public void onFail(RouterError error) {
            //       
            LogUtils.d("error:"+error);
          }
        })
        .extra("key","value")
        .extra("key2","value2")
        .flags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
        .jump("vf://paycode.entry?title=1111");//  url  
    
    //      
    VpRouter.get().context(this).jump("vpjr://guide");
    VpRouter.get().context(this).jumpForResult("vpjr://guide",REQUEST_CODE);//REQUEST_CODE>;
    
    
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기