You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cordova-plugin-purchase在Android上window.store未定义问题求助

解决cordova-plugin-purchase在Quasar中window.store未定义的问题

1. 确认插件安装有效性

  • 执行 cordova plugin list 命令,检查输出中是否存在 cordova-plugin-purchase,同时核对BILLING_KEY是否正确配置
  • 若未找到插件,清理缓存后重新指定Android平台安装:
    cordova plugin remove cordova-plugin-purchase
    cordova plugin add cordova-plugin-purchase --variable BILLING_KEY="Key124" --platform android
    

2. 严格遵循Cordova插件加载时机

Cordova插件必须在deviceready事件触发后才能访问,直接在页面初始化阶段调用会导致未定义。在Quasar中可以这样处理:

document.addEventListener('deviceready', () => {
  // 在此处调用window.store相关方法
  window.store.register({
    id: '你的产品ID',
    type: window.store.CONSUMABLE
  });
}, false);

或者在组件的mounted钩子中结合平台判断:

mounted() {
  if (this.$q.platform.is.cordova) {
    document.addEventListener('deviceready', this.initStore, false);
  }
},
methods: {
  initStore() {
    if (window.store) {
      window.store.register(/* 产品配置 */);
    } else {
      console.error('cordova-plugin-purchase未成功加载');
    }
  }
}

3. 检查Quasar的Cordova配置

  • 打开quasar.conf.js,确认cordova模块已启用且指定Android平台:
    cordova: {
      id: 'com.your.app.package',
      platforms: ['android']
    }
    
  • 执行 quasar build -m cordova -T android 重新构建项目,避免热更新导致的插件加载异常

4. 核对新版插件API变更

旧版cc.fovea.cordova.purchase的部分API在新版cordova-plugin-purchase中可能有调整:

  • 尝试用store.initialize替代直接调用register:
    window.store.initialize([{
      id: '你的产品ID',
      type: window.store.CONSUMABLE
    }]);
    
  • 检查新版插件的初始化流程,是否需要先设置调试模式或其他前置配置

5. 验证Android项目配置

  • 打开platforms/android/AndroidManifest.xml,确认包含Billing权限:
    <uses-permission android:name="com.android.vending.BILLING" />
    
  • 查看platforms/android/app/build.gradle,确认Billing Library版本符合Google Play要求(需≥5.0):
    dependencies {
      implementation 'com.android.billingclient:billing:6.0.1'
    }
    

内容的提问来源于stack exchange,提问作者thisis myname

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 22:05:25