首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >离子3应用与cordova-插件-铬应用-套接字-tcp.肝胆困难

离子3应用与cordova-插件-铬应用-套接字-tcp.肝胆困难
EN

Stack Overflow用户
提问于 2017-10-12 14:58:49
回答 1查看 2.6K关注 0票数 0

我在我的安卓应用程序中使用科多瓦-插件-铬-应用-套接字-tcp。在这个应用程序中,我试图连接到TCP/IP服务器。我的代码示例:

代码语言:javascript
复制
export class HomePage implements OnInit {
  constructor(public navCtrl: NavController) {}
  ngOnInit() {
    (<any>window).chrome.sockets.tcp.create({}, createInfo => {
      let socketTcpId = createInfo.socketId;
      (<any>window).chrome.sockets.tcp.connect(socketTcpId, "127.0.0.1", 12345, result => {
        console.log("Connected to server");
      });
    });
  } ...

我使用命令将此代码上传到android模拟器V7.1.1:

代码语言:javascript
复制
ionic cordova run android --prod --emulator --livereload --consolelogs

在第一次运行期间,我的应用程序成功地连接到TCP/IP服务器。但是,如果我按下CTRL并启动livereload进程,在重新加载之后,我会看到错误并发出警告消息:

console.warn: Ionic原住民:设备没有在5000毫秒内开火。当插件处于不一致的状态时,可能会发生这种情况。尝试从插件/重新安装插件。

运行时错误

Uncaught (承诺中):TypeError:无法读取HomePage.ngOnInit上未定义的属性“套接字”

我试图通过重新安装插件、删除和添加安卓平台来修复它,我尝试使用window.plugins或window.cordova.plugins,但它们都是未定义的,并且解决了我的问题。你能帮帮我吗?

在声明chrome变量之后,代码:

代码语言:javascript
复制
import {
  Component,
  OnInit
} from '@angular/core';
import {
  NavController
} from 'ionic-angular';
declare var chrome;
@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage implements OnInit {
  constructor(public navCtrl: NavController) {}
  ngOnInit() {
    chrome.sockets.tcp.create({}, createInfo => {
      let socketTcpId = createInfo.socketId;
      chrome.sockets.tcp.connect(socketTcpId, "127.0.0.1", 12345, result => {
        console.log("Connected to server");
      });
    });
  }...

第一步-所有的工作。在肝后,我看到消息: ReferenceError: chrome未定义。在此之后,如果我要替换铬的声明:

代码语言:javascript
复制
} from 'ionic-angular';
@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
declare var chrome;
export class HomePage implements OnInit {

它将调用运行时错误“‘主页’由模块.,在此之后,如果我将声明返回并按下CTRL所有将再次工作,我将连接到服务器,我错在哪里?

EN

回答 1

Stack Overflow用户

发布于 2017-11-14 11:32:25

你必须用(<any>window)调用它

示例:

代码语言:javascript
复制
(<any>window).chrome.sockets.tcpServer.create({}, function(createInfo) {
       alert('Created')
       this.listenAndAccept(createInfo.socketId);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46712846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档