使用 Android 模拟器时出现 ReferenceError
ReferenceError when using Android Emulator
我将 stripe v3 与我的 ionic 4 应用程序和 angular 一起使用。最近我在 android 和 iOS 上编译了应用程序。当我使用
cordova ionic emulate ios
一切正常。当我使用时:
cordova ionic emulate android
应用程序正在构建,但我在闪屏后出现了白屏。我在 index.html
:
中实现了条纹
<head>
<head>
<script src="https://js.stripe.com/v3/"></script>
<!-- rest of code... ->
来自 chrome 控制台的错误:
ERROR Error: Uncaught (in promise): ReferenceError: Stripe is not
defined
ReferenceError: Stripe is not defined at new PaymentsService
支付服务:
Declare var Stripe;
浏览器和 iOS 工作。 Android 在模拟器中 - 不是。
我应该修复什么?
提前致谢。
添加脚本标签对于 Ionic 来说还不够。您需要使用适当的依赖注入,并且有一个用于 Stripe 的插件。
我建议按照他们的文档了解如何使其正常工作:
https://ionicframework.com/docs/native/stripe
和
https://github.com/zyra/cordova-plugin-stripe
这里是插件集成指南。但是,如果您使用的是 v3,则可能会有差异。不确定插件是否支持该版本
https://enappd.com/blog/ionic-4-stripe-payment-integration-with-firebase-for-apps-and-pwa/17/
除上述所有内容外,还需要检查您的应用是否允许从 stripe CDN 获取文件。
<allow-navigation href="https://js.stripe.com" />
尝试在您的配置中添加以上内容xml
如果你非要用javascript库而不用插件,可能是你声明Stripe的地方不对。
试着把它放在 typings/cordova-typings.d.ts
谢谢大家的帮助。
老实说,我解决了我的问题 - 我不知道它为什么起作用,但是:
- 已删除android 平台
ionic cordova platform remove android
- 已删除 www 文件夹
rm -rf www/
- 重建android平台:
ionic cordova platform add android
- 已将 "async" 添加到我的 index.html
<!-- async added to script tag -->
<script src="https://js.stripe.com/v3/" async></script>
谢谢,
我将 stripe v3 与我的 ionic 4 应用程序和 angular 一起使用。最近我在 android 和 iOS 上编译了应用程序。当我使用
cordova ionic emulate ios
一切正常。当我使用时:
cordova ionic emulate android
应用程序正在构建,但我在闪屏后出现了白屏。我在 index.html
:
<head>
<head>
<script src="https://js.stripe.com/v3/"></script>
<!-- rest of code... ->
来自 chrome 控制台的错误:
ERROR Error: Uncaught (in promise): ReferenceError: Stripe is not defined ReferenceError: Stripe is not defined at new PaymentsService
支付服务:
Declare var Stripe;
浏览器和 iOS 工作。 Android 在模拟器中 - 不是。
我应该修复什么?
提前致谢。
添加脚本标签对于 Ionic 来说还不够。您需要使用适当的依赖注入,并且有一个用于 Stripe 的插件。
我建议按照他们的文档了解如何使其正常工作:
https://ionicframework.com/docs/native/stripe
和
https://github.com/zyra/cordova-plugin-stripe
这里是插件集成指南。但是,如果您使用的是 v3,则可能会有差异。不确定插件是否支持该版本
https://enappd.com/blog/ionic-4-stripe-payment-integration-with-firebase-for-apps-and-pwa/17/
除上述所有内容外,还需要检查您的应用是否允许从 stripe CDN 获取文件。
<allow-navigation href="https://js.stripe.com" />
尝试在您的配置中添加以上内容xml
如果你非要用javascript库而不用插件,可能是你声明Stripe的地方不对。
试着把它放在 typings/cordova-typings.d.ts
谢谢大家的帮助。
老实说,我解决了我的问题 - 我不知道它为什么起作用,但是:
- 已删除android 平台
ionic cordova platform remove android
- 已删除 www 文件夹
rm -rf www/
- 重建android平台:
ionic cordova platform add android
- 已将 "async" 添加到我的 index.html
<!-- async added to script tag -->
<script src="https://js.stripe.com/v3/" async></script>
谢谢,