我有一个离子/ cordova项目使用:
cordova-android@6.2.0
cordova-plugin-crosswalk-webview@2.3.0
cordova cli 6.4.0
ionic 1.3.3
Run Code Online (Sandbox Code Playgroud)
当我尝试添加Android平台时,我得到以下输出
================
$ ionic platform add android@6.2.0
Adding android project...
Creating Cordova project for the Android platform:
Path: platforms/android
Package: com.ionicframework.name
Name: name
Activity: MainActivity
Android target: android-25
Subproject Path: CordovaLib
Android project created with cordova-android@6.2.0
Run Code Online (Sandbox Code Playgroud)
错误:cordovaProject.projectConfig.getFileResources不是函数
我有一个非常奇怪的问题,大约一个星期前就开始发生了.
我有一个离子v1应用程序,它使用谷歌地图(不是一个cordova插件,但谷歌地图的网络版本),这些地图以模式打开,并一直工作(至少两年).
我目前拥有的JS代码如下
$scope.pickup_map = {
center: item.location,
zoom: 14,
control: pickupMapControl,
mapOptions: {
draggable: true,
disableDefaultUI: true,
zoomControl: true,
zoomControlOptions: {
style: google.maps.ZoomControlStyle.LARGE,
position: google.maps.ControlPosition.RIGHT_CENTER
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后在openModal方法中:
$timeout(
() => {
const map = pickupMapControl.getGMap()
map.setCenter(new google.maps.LatLng(item.location.latitude, item.location.longitude))
google.maps.event.trigger(map, 'resize')
},
100
)
Run Code Online (Sandbox Code Playgroud)
在html我有:
<script src="https://maps.googleapis.com/maps/api/js?libraries=geometry&libraries=places&key=AIzaSyAUKvpku-JhbniZY80NLq_A2Ejgk_b_lUc&v=3.31" async></script>
Run Code Online (Sandbox Code Playgroud)
和
<ion-modal-view>
<ion-header-bar class="bar-calm">
<h1 class="title">Pick-up Location</h1>
<div class="button button-clear" ng-click="closeMapViewer()"><span class="icon ion-close"></span></div>
</ion-header-bar>
<ion-content class="pickup-location-viewer">
<ui-gmap-google-map
center="pickup_map.center"
zoom="pickup_map.zoom"
control="pickup_map.control"
options="pickup_map.mapOptions"
draggable="true"
data-tap-disabled="true"
ng-if="pickup_map.control"
>
<ui-gmap-circle center="marker.position" stroke="marker.stroke" fill="marker.fill" radius="marker.radius"></ui-gmap-circle> …Run Code Online (Sandbox Code Playgroud) 问题已更新
我目前使用该命令将插件添加到我的cordova项目中cordova plugin add x.我相信这在背景中使用npm.
有没有人知道如何将npm转换为纱线js(在cordova内,我希望cordova使用纱线代替npm),因为它会在缓存方面产生如此巨大的差异(除了自己更新cordova cli) .
结论
2016年12月
似乎安装纱线意味着纱线从npm接管作为默认的包管理器,因此默认情况下加速并且不需要修补Cordova.
2017年9月
似乎我错了,显然,Cordova是硬编码使用npm,https: //issues.apache.org/jira/browse/CB-12242 .我将重新打开此问题以请求Apache将其作为选项.
我尝试安装任何离子的cordova插件时有时会出错(通常在格林威治标准时间下午6点左右+ 0之后).
这些是来自npm和GitHub的插件,我得到的错误是:
Error: Text data outside of root node.
Line: 155
Column: 1
Char: "
Run Code Online (Sandbox Code Playgroud)
安装命令将是一些东西
ionic cordova plugin add cordova-plugin-network-information@1.3.1
插件是什么并不重要,因为正如所提到的那样,它们发生了很多,它们都会得到同样的错误.它会在早上完全正常工作,然后突然关闭.
我已尝试在多台计算机上,在多个独立的互联网连接上(来自英国),我甚至有一个脚本,如果它们失败则重新运行命令,因此它会尝试连续安装大约20个插件,直到它们安装了很长时间我运行我的脚本.我经常跑了一个小时,没有安装任何一个.
我还检查了npm和GitHub的状态,如果它们可能已经关闭,但它们似乎正常运行...
任何想法将不胜感激
当我的应用程序从后台恢复时,我想运行这些代码。为此,我使用 AppState.addEventListener() 注册了一个事件。
const handleAppStateChange = () => {
console.log('Do stuff')
}
constructor(props: Props) {
super(props)
AppState.addEventListener('change', this.handleAppStateChange)
}
componentWillUnmount() {
AppState.removeEventListener('change', this.handleAppStateChange)
}
Run Code Online (Sandbox Code Playgroud)
当我通常退出应用程序并恢复时,它会按预期打印“做事”,但是(这是问题所在),当应用程序最小化并点击通知时,应用程序将打印“做事”两次。
我发现这是因为当我点击通知时,它似乎重新运行了应用程序(包括构造函数部分),这意味着它创建了第二个事件侦听器......
那么,有没有人知道为什么在点击通知时这样做,以及我是否可以阻止它(使用 react-native-push-notification 插件),或者是否有办法确保重复事件未注册?
这发生在我的 Android 物理设备上,不确定它是否也是 iOS 问题,但只是想我会检查是否有人知道这是否可行)
cordova ×3
android ×2
javascript ×2
npm ×2
google-maps ×1
ios ×1
node.js ×1
react-native ×1
react-native-push-notification ×1
yarnpkg ×1