Я работаю над приложением Wifi Direct для обнаружения пиров на React-native.Я немного озадачен поиском списка пиров, созданного onPeersAvailable ().Как мне кодировать его, чтобы инициировать возврат peerList (а именно, var params в коде), когда кнопка findPeers () нажата.
Кажется, что функция обнаружения работает хорошо. Из того, что я считаю, я должен пройтисгенерированный LIST для другой функции, и эта функция (асинхронная) вернет LIST обратно, чтобы реагировать на встроенную функцию.Однако я просто не знаю, как это сделать на данный момент.Если бы вы могли предоставить небольшую основу кода, чтобы сделать это, это было бы очень полезно для меня.
- именно здесь генерируется список пиров.var params - это контейнер peerList.
private WifiP2pManager.PeerListListener peerListListener = new
WifiP2pManager.PeerListListener() {
@Override
public void onPeersAvailable(WifiP2pDeviceList peerList) {
WritableArray array = Arguments.createArray();
for (WifiP2pDevice device : peerList.getDeviceList()) {
WritableMap params = Arguments.createMap();
params.putString("device", device.deviceName);
params.putString("address", device.deviceAddress);
array.pushMap(params);
}
/// how to return this params variable back to react native
WritableMap params = Arguments.createMap();
params.putArray("devices", array);
}
};
- запуск функции обнаружения пиров
@ReactMethod
public void discoverPeers(final Callback callback) {
manager.discoverPeers(channel, new WifiP2pManager.ActionListener() {
@Override
public void onSuccess() {
callback.invoke(true);
}
@Override
public void onFailure(int reasonCode) {
callback.invoke(false);
}
});
}
- здесь находится кнопкав реагировать на родной, чтобы вызвать функцию DiscoverPeers ()
Discoverpeers(){
WifiDirect.discoverPeers((success) => {
console.log(success);
this.setState({wifidirectavailable: success});
},
(error) => {
this.setState({wifidirectavailable: error});
}
);
}
Я ожидаю функцию возврата при обнаружении списка peerlist, но на данный момент у меня нет никакого возврата, основанного на коде.