相关疑难解决方法(0)

Cordova/Ionic:$ http请求在设备上模拟或运行时不进行处理

上周一切顺利,当我在设备上运行应用程序或使用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请求.

有人经历过类似的事吗?我对此感到非常头疼.

angularjs cordova phonegap-build ionic

10
推荐指数
2
解决办法
2万
查看次数

反应组件中的 onDeviceReady 事件侦听器

在我的反应应用程序中,我尝试使用 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 事件?

cordova reactjs cordova-plugins react-dom

7
推荐指数
1
解决办法
782
查看次数

Phonegap(应用程序错误...发生网络错误)

我使用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)

html android phonegap-plugins cordova phonegap-build

5
推荐指数
1
解决办法
2141
查看次数

如何在 React JS 页面中使用 Cordova 插件

我想在我的 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 reactjs cordova-plugins

4
推荐指数
1
解决办法
4347
查看次数

Cordova + 在开发模式下进行热重载反应

我发现这个问题Cordova 与 Create-react-app

当我处于开发模式且应用程序在 Android 模拟器中运行时,我是否能够实现实时重新加载?我担心每次我想看到变化时都必须构建应用程序。

cordova是否能够观看在开发模式下运行的react-app并通过index.js监听更改来读取源代码?

假设我想实现这样的目标:

  1. 创建科尔多瓦项目。
  2. 在 /www 文件夹(或任何其他适合我的用例的文件夹...)中创建 React 项目。
  3. 从 root运行cordova run android以在 Android Simulator 中和 /www 目录中运行应用程序npm start
  4. cordova 应该能够监听 Android 模拟器中的更改并实时重新加载 React 应用程序。
  5. 我需要能够访问 React 代码中的 cordova 实例才能使用插件等。

我找到了一些 webpack-server-dev (使用 webpack v1...)相关的解决方案,但它们似乎都不起作用,我需要重新启动cordova run android命令才能查看代码中的更改。否则,这些模板不提供在开发模式下访问 cordova 插件实例的功能

那么真的是开发cordova + React应用程序的唯一方法吗npm buildcordova run android

注 1:我想使用 SQLite cordova plguin,因此在仅浏览器模式下进行开发,然后在完成后为 android/ios 构建应用程序,我认为这不是我的情况。请问您有什么建议吗?

注意 2:我无法使用react-native,因为我需要使用openlayers 地图库。

非常感谢您的回答!

cordova reactjs webpack

4
推荐指数
1
解决办法
3815
查看次数