Cordova 无法使用android corova zeroconf插件与具有.local域的设备通信
我有一个iot设备,它在我的网络中以iotdevice.local的名称发布广告。安装Bonjour后,我能够在我的windows pc中向该域发送http请求。但我正在开发一款ionic应用程序,我将通过它与该设备进行频繁通信。 所以我使用cordova zeroconf插件。(). 当我添加watch for.local服务时,我看到了这些服务。但当我在$http函数中使用IoDevice.local时,我的请求是faield。 我有这个密码 App.jsCordova 无法使用android corova zeroconf插件与具有.local域的设备通信,cordova,ionic-framework,iot,zeroconf,Cordova,Ionic Framework,Iot,Zeroconf,我有一个iot设备,它在我的网络中以iotdevice.local的名称发布广告。安装Bonjour后,我能够在我的windows pc中向该域发送http请求。但我正在开发一款ionic应用程序,我将通过它与该设备进行频繁通信。 所以我使用cordova zeroconf插件。(). 当我添加watch for.local服务时,我看到了这些服务。但当我在$http函数中使用IoDevice.local时,我的请求是faield。 我有这个密码 App.js if (window.cordo
if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);
console.log("device ready");
var zeroconf = cordova.plugins.zeroconf;
zeroconf.watch('_http._tcp.local.', function(result) {
var action = result.action;
var service = result.service;
console.log(JSON.stringify(result));
if (action == 'added') {
console.log('service added', service);
} else {
console.log('service removed', service);
}
});
}
它工作正常,在日志中我可以看到我的设备
{“操作”:“添加”,“服务”:{“应用程序”:“http”,“域”:“本地”,“端口”:80,“名称”:“IoDevice”,“服务器”:“IoDevice.local.”,“描述”:“\00”,“协议”:“tcp”,“限定名称”:“IoDevice.\U http.\U tcp.local.”,“类型”:“IoDevice.\U tcp.local.”,“txtRecord”:{},“地址”:[“192.168.0.4”],“URL”:[“”}
但是当我在controller.js中使用它时
$scope.sendRequest2 = function(){
$http({
method: 'GET',
url: 'http://iotdevice.local/events?id=600194067eba&action=socket1off'
}).then(function successCallback(response) {
$scope.req2succes=true;
console.log("Sent");
}, function errorCallback(response) {
console.log(JSON.stringify(response));
console.log("Could not Sent");
$scope.req2succes=false;
});
}
它不起作用。请求状态始终为-1。
谁能帮我怎么对付他。我是不是做错了什么 使用IP地址而不是
http://iotdevice.local.
。使用http://192.168.0.4:80
。希望这能起作用。使用IP地址而不是http://iotdevice.local.
。使用http://192.168.0.4:80
。希望能奏效。不,问题是我不能使用IP,因为我并不总是知道IP,它是动态的,当路由器的状态改变时可能会改变。这就是为什么我有一个固定的。本地域,即使IP发生变化,它也应该始终工作。在zeroconf.watch
中,您将获得动态IP。您可以使用动态IP。谢谢,我将一直使用它,直到找到更好的解决方案,因为这将涉及所有设备的IP日志。以及在通信部分上的另一层。无论如何,谢谢。不,问题是我不能使用IP,因为我并不总是知道IP,它是动态的,当路由器的状态改变时可能会改变。这就是为什么我有一个固定的。本地域,即使IP发生变化,它也应该始终工作。在zeroconf.watch
中,您将获得动态IP。您可以使用动态IP。谢谢,我将一直使用它,直到找到更好的解决方案,因为这将涉及所有设备的IP日志。以及在通信部分上的另一层。无论如何,谢谢。请尝试将if(action=='added')替换为if(action=='resolved')。这对我很管用。试着用if(action=='resolved')替换if(action=='added')。这对我很管用。