我在我的安卓应用程序中使用科多瓦-插件-铬-应用-套接字-tcp。在这个应用程序中,我试图连接到TCP/IP服务器。我的代码示例:
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:
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变量之后,代码:
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未定义。在此之后,如果我要替换铬的声明:
} from 'ionic-angular';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
declare var chrome;
export class HomePage implements OnInit {它将调用运行时错误“‘主页’由模块.,在此之后,如果我将声明返回并按下CTRL所有将再次工作,我将连接到服务器,我错在哪里?
发布于 2017-11-14 11:32:25
你必须用(<any>window)调用它
示例:
(<any>window).chrome.sockets.tcpServer.create({}, function(createInfo) {
alert('Created')
this.listenAndAccept(createInfo.socketId);
});https://stackoverflow.com/questions/46712846
复制相似问题