Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cordova 无法使用android corova zeroconf插件与具有.local域的设备通信_Cordova_Ionic Framework_Iot_Zeroconf - Fatal编程技术网

Cordova 无法使用android corova zeroconf插件与具有.local域的设备通信

Cordova 无法使用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

我有一个iot设备,它在我的网络中以iotdevice.local的名称发布广告。安装Bonjour后,我能够在我的windows pc中向该域发送http请求。但我正在开发一款ionic应用程序,我将通过它与该设备进行频繁通信。 所以我使用cordova zeroconf插件。(). 当我添加watch for.local服务时,我看到了这些服务。但当我在$http函数中使用IoDevice.local时,我的请求是faield。 我有这个密码 App.js

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')。这对我很管用。