上周一切顺利,当我在设备上运行应用程序或使用Genymotion进行模拟时,所有对api的调用都在工作(要么返回数据,要么失败但至少显示一些内容).
我在用
ionic run android
Run Code Online (Sandbox Code Playgroud)
我添加更新全球cordova离子:
npm install -g cordova ionic
Run Code Online (Sandbox Code Playgroud)
因为所有$ http请求都没有处理.当Api仍然正常工作并且CORS完美设置时,我无法得到任何响应.
我找到的唯一方法是使用选项--livereload或-l:
ionic run -l android
Run Code Online (Sandbox Code Playgroud)
我想避免不惜任何代价使用livereload.
我开始使用ionic 1.0.0和cordova lib 4.3.0从头开始创建一个项目.
angular.module('starter.controllers', [])
.controller('AppCtrl', function($scope, $ionicModal, $timeout, $http) {
alert('calling api');
// Create an anonymous access_token
$http
.get(domain+'/oauth/v2/token?client_id='+public_id+'&client_secret='+secret+'&grant_type=client_credentials')
.then(function(response){
alert(response.data.access_token);
});
})
Run Code Online (Sandbox Code Playgroud)
所以在使用时:
ionic serve
Run Code Online (Sandbox Code Playgroud)
它正确地警告"调用api"然后响应(该示例的OAuth访问令牌).
但在使用时:
ionic run android
Run Code Online (Sandbox Code Playgroud)
它仅警告'调用api'但似乎不处理http请求.
有人经历过类似的事吗?我对此感到非常头疼.
在我的反应应用程序中,我尝试使用 Cordova 插件(cordovo-plugin-device)来获取用户的设备版本,如下所示
class LogoHeader extends React.Component {
componentDidMount () {
window.addEventListener('deviceready', this.onDeviceReady)
}
onDeviceReady () {
console.log(device.cordova)
}
render () {
...
}
}
Run Code Online (Sandbox Code Playgroud)
但出于某种原因,该deviceready事件永远不会被触发。我错过了什么吗?有没有更好的方法在 react 中监听 DOM 事件?
我使用phonegap创建了一个构建版本.在index.html文件中,我编写了一个用于加载网站的简单iframe.当我从phonegap中获取本地URL时,它正在工作.但是,如果我将整个构建作为一个zip在phonegap上传,然后从它下载apk文件,它不工作.然后尝试在手机中安装该apk,显示应用程序错误.
我已经检查了访问源,并尝试在其中提供域名.但它根本没有工作.任何人都可以帮我这个.
config.xml和index.html如下所示
<access origin="*"/>
Run Code Online (Sandbox Code Playgroud)
<html>
<head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<meta name="msapplication-tap-highlight" content="no" />
<!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
<title>Testing</title>
</head>
<body>
<iframe src="http://www.w3schools.com" height="640px" width="100%" frameborder="0" scrolling="yes">
</iframe>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
我想在我的 react JS 应用程序中使用一些 Cordova 插件,但该应用程序一直失败。我知道cordova 仅在运行时可用,因为我需要一种解决方法。
我的应用程序是通过 create react app with cordova here创建的
比如我想导入cordova-plugin-device来获取设备uuid,代码如下:
import React, {Component} from 'react';
...
var device = require("cordova-plugin-device");
class Login extends Component {
handleSubmit = () => {
const { phone, password } = this.state
let params = {
phonenumber: phone,
password: password,
deviceID: device ? device.uuid : "test"
}
...
}
render () {
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在npm start运行时遇到错误npm build。这是错误Module not found: Can't resolve 'cordova-plugin-device' …
我发现这个问题Cordova 与 Create-react-app。
当我处于开发模式且应用程序在 Android 模拟器中运行时,我是否能够实现实时重新加载?我担心每次我想看到变化时都必须构建应用程序。
cordova是否能够观看在开发模式下运行的react-app并通过index.js监听更改来读取源代码?
假设我想实现这样的目标:
cordova run android以在 Android Simulator 中和 /www 目录中运行应用程序npm start。我找到了一些 webpack-server-dev (使用 webpack v1...)相关的解决方案,但它们似乎都不起作用,我需要重新启动cordova run android命令才能查看代码中的更改。否则,这些模板不提供在开发模式下访问 cordova 插件实例的功能
那么真的是开发cordova + React应用程序的唯一方法吗
npm build?cordova run android
注 1:我想使用 SQLite cordova plguin,因此在仅浏览器模式下进行开发,然后在完成后为 android/ios 构建应用程序,我认为这不是我的情况。请问您有什么建议吗?
注意 2:我无法使用react-native,因为我需要使用openlayers 地图库。
非常感谢您的回答!