React-native-iap: iOS์—์„œ RNIap.requestPurchase๊ฐ€ ์‘๋‹ตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2020๋…„ 05์›” 13์ผ  ยท  11์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: dooboolab/react-native-iap

react-native-iap ๋ฒ„์ „

4.4.8

๋ฐ˜์‘ ๋„ค์ดํ‹ฐ๋ธŒ ๋ฒ„์ „

0.61.5

์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ํ”Œ๋žซํผ(IOS ๋˜๋Š” Android ๋˜๋Š” ๋‘˜ ๋‹ค?)

iOS

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™

await RNIap.requestPurchase(sku, false)
console.log('REQUEST OVER') 

์ธ์‡„๋ฅผ ์š”์ฒญํ•˜์„ธ์š”.

์‹ค์ œ ํ–‰๋™

์ƒŒ๋“œ๋ฐ•์Šค ํ…Œ์Šคํ„ฐ ๊ณ„์ •์„ ์‚ฌ์šฉํ•˜๋Š” ์žฅ์น˜์—์„œ ์‘๋‹ตํ•˜๊ณ  ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‹ค๋ฅธ ์žฅ์น˜๋‚˜ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์—์„œ๋Š” ์‘๋‹ตํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•ฑ์„ ๊ฒ€ํ† ํ•˜๋Š” ๋™์•ˆ Apple์ด BUY๋ฅผ ํƒญํ•˜๋Š” ์ด์œ ๋กœ ๋‚ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ณ„์† ๊ฑฐ๋ถ€ํ•˜๋ฉด ์‘๋‹ตํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

RNIap.getProducts(itemSkus) ์— ๋Œ€ํ•ด์„œ๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ๋œ ํ™˜๊ฒฝ(์—๋ฎฌ๋ ˆ์ดํ„ฐ? ์‹ค์ œ ์žฅ์น˜?)

์‹ค์ œ ์žฅ์น˜ ๋ฐ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ

ํ–‰๋™์„ ์žฌํ˜„ํ•˜๋Š” ๋‹จ๊ณ„

 async componentDidMount() {
    RNIap.getProducts(itemSkus)
      .then((products) => {
        this.setState({ products: products })
      })
      .catch((error) => {
        console.log(error.message)
      })
  }
requestPurchase = async (sku) => {
    try {
      await RNIap.requestPurchase(sku, false)
      console.log('REQUESTED OVER')
    } catch (err) {
      console.warn(err.code, err.message)
    }
}

render() {
 const { products } = this.state
 return (
  <View>
    {products.map((p, i) => { return (
       <TouchableWithoutFeedback onPress={() => this.requestPurchase(p.productId)}>
          <Text> BUY </Text>
       </TouchableWithoutFeedback> ) })}
 </View>)
๐Ÿšถ๐Ÿป stale

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  await RNIap.initConnection() ๋ฅผ componentDidMount ์— ์ถ”๊ฐ€ ํ•˜๋ผ๋Š” @Panda313 ์ œ์•ˆ์ด ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
์œ ๊ฐ์Šค๋Ÿฝ๊ฒŒ๋„ ์ด๊ฒƒ์€ ๋” ์ž˜ ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค ...

๋ชจ๋“  11 ๋Œ“๊ธ€

์—ฌ๊ธฐ์—์„œ๋„ ๋™์ผํ•˜์ง€๋งŒ Android์—์„œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ถ”๊ฐ€ํ•˜์—ฌ ์ˆ˜์ •ํ–ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const ๊ฒฐ๊ณผ = RNIap.initConnection()์„ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.
RNIap.consumeAllItemsAndroid()๋ฅผ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.
console.log('๊ฒฐ๊ณผ', ๊ฒฐ๊ณผ);

componentDidMount ์‹œ์ž‘ ์‹œ ;

๋„์›€์ด ๋˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”

@hyochan ์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์œผ์…จ์Šต๋‹ˆ๊นŒ? iOS์—์„œ๋„ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋งค์šฐ ์‹ค๋ง์Šค๋Ÿฝ๊ณ  RNIap.requestPurchase๋ฅผ ํ˜ธ์ถœํ•ด๋„ ์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ๋… ์กฐ๊ฑด์— ๋™์˜ํ•˜๋„๋ก ์œ ๋„ํ•˜๊ฑฐ๋‚˜ ๊ตฌ๋…์ด ์ด๋ฏธ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Œ์„ ํ™•์ธํ•˜๋Š” ๊ฒฝ๊ณ ์™€ ํ•จ๊ป˜ ์‘๋‹ตํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ณผ๊ฑฐ ์•ฑ ๊ฒ€ํ† ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์•ฑ์„ ๊ฐ•์ œ ์ข…๋ฃŒํ•˜๊ณ  ๋‹ค์‹œ ์‹œ๋„ํ•˜๋ฉด ๊ฐ€๋” ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ƒŒ๋“œ๋ฐ•์Šค๋‚˜ ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

@smarttouchtechnology initConnection ์ „ํ™”ํ•˜์…จ์Šต๋‹ˆ๊นŒ? ์ด๊ฒƒ์€ 4.4.5 ์—์„œ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

@smarttouchtechnology ์—์„œ "๋ฌธ์ œ"๋ฅผ "ํ•ด๊ฒฐ"ํ•˜๋Š” ์•„๋ž˜์˜ ๋‹ต๋ณ€์„ ์ฝ๋Š” ๊ฒƒ์€ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ;)

๋‚˜๋Š” ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๊ณ  await RNIap.initConnection() ๋ฅผ componentDidMount ์— ์ถ”๊ฐ€ ํ•˜๋ผ๋Š” @Panda313 ์ œ์•ˆ์ด ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
์œ ๊ฐ์Šค๋Ÿฝ๊ฒŒ๋„ ์ด๊ฒƒ์€ ๋” ์ž˜ ๋ฌธ์„œํ™”๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค ...

@Panda313 ... ์‚ฌ๊ณผ ๊ฑฐ์ ˆ์˜ 1์ฃผ๊ฐ„ ์ž  ๋ชป ์ด๋ฃจ๋Š” ๋ฐค์„ ๊ตฌํ•ด์ฃผ์…จ์–ด์š”

๋” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ด ๋ฌธ์ œ๋ฅผ ๊ฒช์ง€ ์•Š๋„๋ก ๋ˆ„๊ตฐ๊ฐ€ ์ด๊ฒƒ์„ ๋ฌธ์„œ์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์ถ”๊ฐ€ํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํŽธ์ง‘: ์—ฌ๊ธฐ์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. #1088.

์ž์œ ๋กญ๊ฒŒ ๊ฒ€ํ† ํ•˜์‹ญ์‹œ์˜ค(์ œ๊ฐ€ ์ œ๋Œ€๋กœ ํ–ˆ๋Š”์ง€ ํ™•์‹ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.)

์ถ”๊ฐ€ํ•˜์—ฌ ์ˆ˜์ •ํ–ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

const ๊ฒฐ๊ณผ = RNIap.initConnection()์„ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.
RNIap.consumeAllItemsAndroid()๋ฅผ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.
console.log('๊ฒฐ๊ณผ', ๊ฒฐ๊ณผ);

componentDidMount ์‹œ์ž‘ ์‹œ ;

๋„์›€์ด ๋˜๋Š”์ง€ ์•Œ๋ ค์ฃผ์„ธ์š”

iOS์˜ ๊ฒฝ์šฐ requestSubscription ์—์„œ ์‘๋‹ต์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค. RNIap.requestSubscription ์•ž์— await RNIap.initConnection(); ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ๋Š”๋ฐ ํšจ๊ณผ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ์•ฑ ๋ฃจํŠธ์˜ ๋ฆฌ์Šค๋„ˆ์—์„œ ๊ตฌ๋งค ๊ฐ์ฒด๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์˜ค๋ฅ˜ ๋˜๋Š” ์„ฑ๊ณต์ ์ธ ์‘๋‹ต์œผ๋กœ ํ•ด๊ฒฐ๋œ ํ›„ ์ฝ”๋“œ๋ฅผ ๋” ์•„๋ž˜๋กœ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”, ์ตœ๊ทผ์— ์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ™œ๋™์ด ์—†๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๊นŒ? ์•„๋‹ˆ๋ฉด ์—ฌ์ „ํžˆ ์ปค๋ฎค๋‹ˆํ‹ฐ์˜ ๊ด€์‹ฌ์ด ํ•„์š”ํ•œ๊ฐ€์š”? ๋” ์ด์ƒ ํ™œ๋™์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์œผ๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ์ข…๋ฃŒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์— "ํ† ๋ก ์šฉ" ๋˜๋Š” "์ข‹์€ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ œ"๋กœ ๋ ˆ์ด๋ธ”์„ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์—ด์–ด ๋‘๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๊ธฐ์—ฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์žฅ๊ธฐ๊ฐ„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์ด ๋ฌธ์ œ๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๊ฐ€ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค์— ์—ฌ์ „ํžˆ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ์–ธ์ œ๋“ ์ง€ ์ตœ์‹  ์ •๋ณด๋กœ ์ƒˆ ๋ฌธ์ œ๋ฅผ ์ƒ์„ฑํ•˜์‹ญ์‹œ์˜ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰