簡體   English   中英

在cordova添加平台android和iOs之后,並不總是添加插件

[英]Plugins are not always added after cordova add platform android and iOs

我需要運行ionic platform add android/iOs幾次ionic platform add android/iOs以獲得所需的結果。 有時插件是在第一次運行后添加的,但通常我必須清除插件和平台目錄並重新運行添加平台循環幾次,直到所有插件都添加到android文件夾中。

是否有其他人遇到過同樣的問題,如果是的話 - 解決方案是什么? 如果有...

提前致謝

我自己也經歷過一些類似的問題。 嘗試重新設置離子項目:

ionic state reset

這將刪除platforms/plugins/文件夾,並從package.json存儲的信息中恢復它們。 ionic-cli項目中記錄了一些其他有用的命令。

我最終使用的解決方案是在添加平台后卸載並重新安裝所有插件。 由於我在過去的Cordova應用程序中遇到了這個問題,我試圖使構建盡可能保持一致,所以我不提交平台目錄並在構建apk后刪除它。 我用腳本完成了這個:

ionic platform add android

ionic plugin remove org.apache.cordova.device
ionic plugin remove org.apache.cordova.console
ionic plugin remove com.ionic.keyboard

ionic plugin add org.apache.cordova.device
ionic plugin add org.apache.cordova.console
ionic plugin add com.ionic.keyboard

platforms/android/cordova/build --release

rm -rf platforms

這一直對我有用,但由於我不想擔心保持最新狀態,我已將這些命令移到:after_platform_add / 010_install_plugins.js中,並添加了以下內容:

packageJSON.cordovaPlugins = packageJSON.cordovaPlugins || [];

packageJSON.cordovaPlugins.forEach(function(plugin) {
  exec('cordova plugin remove ' + plugin, function(error, stdout, stderr) {
    sys.puts(stdout);
  });
});

packageJSON.cordovaPlugins.forEach(function(plugin) {
  exec('cordova plugin add ' + plugin, function(error, stdout, stderr) {
    sys.puts(stdout);
  });
});

這假設根JSON對象中的package.json中存在這些行中的某些內容:

"cordovaPlugins": [
  "org.apache.cordova.console",
  "org.apache.cordova.device",
  "com.ionic.keyboard"
]

如果after_plugin_add / 010_register_plugin.js正常工作,應自動執行哪個操作。

所有這一切,我覺得這有點hacky和Ionic應該正確處理所有這些,所以希望我能找到一些時間在這方面調查這個問題並找到這個問題的根本問題。

我想我找到了解決這個問題的方法。 而不是使用離子cli添加平台我使用sudo cordova platform add ... 它每次都在工作。

現在最好使用ionic cordova prepare

這將在一個步驟中安裝和配置所有插件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM