2017-12-26 22 views
0

Ionic Native 용 InAppPurchase2 플러그인에 문제가 있습니다. 구성 요소로드, 운이 없어도. 내 구성 요소에서 이닉 네이티브 InAppPurchase2 - .ready()로로드 할 스토어를 가져올 수 없습니다.

, 나는 다음과 같은 일을 해요 : 나는에이를 실행하지만 때, 약속을 .ready() 기능을 반환 사용하여 플러그인에 대한 이온 기본 페이지의 문서에 따르면

ionViewDidLoad() { 
    this.platform.ready().then(() => { 
     this.inAppPurchase2.ready().then(() => this.product = 'InAppPurchase plugin called'); 
    }); 
    } 

을 내 이 코드는 실행되지 않으며 오류가 발생하지 않습니다.

다른 곳에서 InAppPurchase2.getPlugin().ready(() => this.product = 'InAppPurchase plugin called'));과 같은 기능을 수행 할 수 있다고 말한 게시물을 발견했습니다. 모듈에서 직접 함수를 호출 할 수 있습니다. 그 중 하나와 함께 행운을 얻지는 못했지만 입력 코드에서 오류가 발생합니다. .

내가 여기서 뭘 하려는지 놓치고있는 것이 있습니까?

+0

어떻게 실행되지 않는지 알고 계십니까? 콜백 함수에 로그를 넣으려고 시도 했습니까? –

+0

예. 죄송합니다. html 템플릿에 {{product}}이 (가) 해당 메시지를 보여 주 었는지 보여줍니다. –

답변

0

당신이하려는 것은 속성을 비동기 적으로 채우는 것입니다.

다음을 수행하십시오. 플러그인의 ready() 함수를 호출하고 promise resolve에서 원하는 문자열을 리턴하는 함수를 작성하십시오.

makeAPromiseCall(): Promise<any> { 
     return this.InAppPurchase2 
      .ready() 
      .then(() => 'InAppPurchasePlugin'); 
    } 

할당

this.product: Promise<any> = this.makeAPromiseCall(); 

같이하고 HTML 각도 비동기 파이프를 사용하여 귀하의 재산이 약속.

{{product | async}} 
0

나는 전에이 문제가있었습니다. 때로는 "준비"이벤트가 예상대로 실행되지 않습니다. 다음은이 코드를 작성하는 데 사용 된 코드입니다.

constructor(public store: InAppPurchase2) {} ... 

    this.store.ready().then((status) => { 
    this.logger.logEvent('store_ready', {}); 
    console.log(JSON.stringify(this.store.get(productId))); 
    console.log('Store is Ready: ' + JSON.stringify(status)); 
    console.log('Products: ' + JSON.stringify(this.store.products)); 
    }); 
    // This is what is missing... 
    this.store.refresh(); 

이 정보가 도움이되기를 바랍니다. 제품을 개별적으로 등록해야합니다. 나는 이것에 대한 간단한 설명을 blog post에서했다. 저장소를 준비 상태로 만들려면 새로 고침을 호출해야합니다.