Wifi2
WifiWizard2支持Cordova/Phonegap项目中的Android和iOS应用程序的Wifi管理。
该项目是WifiWizard插件的一个分支,包含修复和更新,以及从Cordova Network Manager插件获取的补丁。
卡在科尔多瓦问题上了?

如果你正在建设一个严肃的项目,你就负担不起花上几个小时进行故障排除。爱奥尼亚的专家为社区插件和卓越插件提供优质咨询服务。betway东盟体育app
安装
betway东盟体育app必威滚球分析软件Ionic Enterprise提供了来自Ionic Team的完全支持和维护的插件。 了解更多 或者如果你对这个插件的企业版感兴趣 联系我们
支撑平台
- 安卓
- iOS
用法
反应
有棱角的
进口
{
Wifi2
}
从
“@betway东盟体育appionic-native / wifi-wizard-2 / ngx”
;
建造师
(
私人
wifiWizard2
:
Wifi2
)
{
}
#全局函数Android和iOS应用程序都可以使用这些函数
`
`
`打字稿
这
.
wifiWizard2
.
getConnectedSSID
(
)
在成功回调中返回已连接的网络SSID(仅当已连接时),否则将调用失败回调(如果未连接或无法检索)
这并 不 如果无法获得SSID,返回BSSID(就像原始WifiWizard所做的那样)
这 . wifiWizard2 . getConnectedBSSID ( )
与上面相同,只是返回BSSID(mac)
这 . wifiWizard2 . 超时 ( 延迟 )
延迟
延迟的时间应该以毫秒为单位吗辅助异步超时延迟,
延迟
是可选的,默认值为2000ms=2秒此方法总是在延迟后返回已解决的承诺,它永远不会拒绝或抛出错误
异步函数内的示例*
异步 作用 例子 ( ) { 等待 这 . wifiWizard2 . 超时 ( 4000 ) ; //在4秒后做某事 }
标准非异步函数内的示例*
作用 例子 ( ) { 这 . wifiWizard2 . 超时 ( 4000 ) . 然后 ( 作用 ( ) { //等待4秒后做某事 } ) : }
抛出错误*
TIMEOUT_WAITING_FOR_SCAN
等待扫描超时10秒+扫描失败
如果无法开始扫描iOS功能
对于功能,你需要注意以下几点:
连接/断开仅适用于iOS11+
不能在模拟器中运行,所以你需要在使用xCode构建时附加一个实际的设备
将确保将“热点配置”和“NetworkExtensions”功能添加到您的xCode项目中
要连接到开放网络,请忽略
ssidPassword
或电话假
这 . wifiWizard2 . IOS连接网络 ( 名称 , ssidPassword )
这 . wifiWizard2 . iOSDisconnectNetwork ( 名称 )
安卓系统功能
Wifi2 如果在调用任何需要启用WiFi的android相关方法时禁用WiFi,将自动尝试启用WiFi
连接与启用
在编写Android Java代码时,没有
连接
方法,你基本上使可能
或使残废
网络。在WIFI向导的原始版本中连接
方法基本上只需调用使可能
在Android中。我已经改变了WifiWizard2版本3.0.0+中的工作方式,将其转换为助手方法,以消除调用formatWifiConfig
然后添加
然后使可能
... 这个连接
方法现在将自动调用formatWifiConfig
,然后调用添加
来添加或更新网络配置,然后调用使可能
.如果connect方法无法更新现有的网络配置(由用户或其他应用程序添加),但有一个有效的网络ID,它仍将尝试启用该网络ID。这 . wifiWizard2 . 连接 ( 名称 , 宾德尔 , 暗语 , 算法 , isHiddenSSID )
名称
应该是要连接到的SSID 必修的宾德尔
应该设置为符合事实的
告诉Android从你的Android应用程序路由所有连接,通过wifi连接(默认是假
) 可选看到
WifiWizard2.enable
有关宾德尔
功能算法
和暗语
如果连接到开放网络,则不需要目前
水渍险
和WEP
只有支持的算法为
WPA2
只是通过水渍险
作为算法集
isHiddenSSID
到符合事实的
如果你连接的网络是隐藏的这些参数与的参数相同
formatWifiConfig
此方法本质上调用
formatWifiConfig
然后添加
然后使可能
如果无法更新网络配置(由用户或其他应用程序添加),但存在有效的网络ID,此方法仍将尝试启用网络
在方法验证到WiFi的连接处于已完成状态(最多等待60秒)之前,不会返回承诺
抛出错误*
CONNECT_FAILED_TIMEOUT
无法验证连接,60秒后超时无效的\u网络\u ID \u到\u连接
无法基于生成的wifi配置进行连接连接时除外的接口
等待连接时发生中断异常
断开与禁用
与上面的Connect vs Enable相同,但在这种情况下除外,
断开
将首先禁用网络,然后尝试删除它(如果传递了SSID)
这
.
wifiWizard2
.
断开
(
名称
)
名称
可以是SSID(字符串)或网络ID(整数)名称
是 可选择的 .. 如果未通过,将断开当前WiFi(现在几乎所有Android版本都将在断开后自动重新连接到最后一个WiFi)如果
名称
提供时,此方法将首先尝试使残废
然后删除
网络如果您不想删除网络配置,请使用
使残废
而不是抛出错误*
断开\u网络\u删除\u错误
Android在删除wifi配置时返回错误断开\u网络\u禁用\u错误
无法基于生成的wifi配置进行连接DISCONNECT_NET_ID_NOT_FOUND
无法确定网络ID来断开/删除(从已通过的SSID)断开连接时出错
-Android断开wifi时出错(仅当未传递SSID时)这 . wifiWizard2 . formatWifiConfig ( 名称 , 暗语 , 算法 , isHiddenSSID )
算法
和暗语
如果连接到开放网络,则不需要目前
水渍险
和WEP
只有支持的算法为
WPA2
只是通过水渍险
作为算法集
isHiddenSSID
到符合事实的
如果你连接的网络是隐藏的这 . wifiWizard2 . 格式图 ( 名称 , 暗语 , isHiddenSSID )
这只是一个调用
WifiWizard2.formatWifiConfig(ssid、密码、'WPA',isHiddenSSID);
这 . wifiWizard2 . 添加 ( 无线网络 )
无线网络
必须是格式化为的对象formatWifiConfig
这 必须 在打电话之前完成使可能
抛出错误*
不支持身份验证类型
-指定的身份验证类型无效ERROR_ADDING_NETWORK
——Android返回-1
指定加错网络ERROR_UPDATING_NETWORK
-与上面相同,只是找到了一个现有的网络ID,无法更新它这 . wifiWizard2 . 删除 ( 名称 )
名称
可以是SSID(字符串)或网络ID(整数)请注意,大多数更新版本的Android将只允许删除由您的应用程序创建的wifi
抛出错误*
无法删除
Android在删除网络时返回失败REMOVE_NETWORK_NOT_FOUND
无法从通过的SSID确定网络ID
这
.
wifiWizard2
.
listNetworks
(
)
这
.
wifiWizard2
.
扫描
(
[
选择权
]
)
一样的要求
startScan
然后getScanResults
,但此方法仅在扫描完成并返回结果后解析承诺。这 . wifiWizard2 . startScan ( )
建议只使用
扫描
方法,而不是startScan
抛出错误*
STARTSCAN_FAILED
Android在启动扫描时返回失败
这
.
wifiWizard2
.
getScanResults
(
[
选择权
]
)
getScanResults
应仅在调用后调用startScan
(建议使用扫描
相反,这会启动扫描,然后返回结果)[选项]
是可选的,如果不想指定,只需传递成功
回调作为第一个参数,并且失败
作为第二个参数的回调以对象数组的形式检索可用网络的列表,并将它们传递给listHandler函数。数组的格式为:
网络 = [ { “水平” : signal_level , //原始RSSI值 “名称” : 名称 , //SSID为字符串,带转义双引号:“SSID名称” “BSSID” : bssid // WiFi路由器的MAC地址字符串 “频率” : 频率 属于 接入点信道 在 兆赫 “能力” : 功能 //描述接入点支持的身份验证、密钥管理和加密方案。 “时间戳” : 时间戳 //扫描完成的时间戳 “通道宽度” : “centerFreq0” : “centerFreq1” : } ]
channelWidth
centerFreq0
和centerFreq1
仅支持API > 23 (Marshmallow),任何旧的API将为这些值返回null可以传递一个options对象。目前,唯一支持的选项是
numLevels
,并具有以下行为:如果
(n == true || n < 2)
,*.getScanResults ({numLevels: n})
将返回数据像以前一样,分成5层;如果
(n>1)
,*.getScanResults ({numLevels: n})
将计算信号电平,分成n级;如果
(n = = false)
,*.getScanResults ({numLevels: n})
将使用原始信号电平;这 . wifiWizard2 . isWifiEnabled ( )
返回是否启用Wifi的布尔值
这 . wifiWizard2 . 可设置 ( 启用 )
通过
符合事实的
为启用
用于设置启用Wifi的参数您无需调用此功能即可将启用WiFi设置为调用其他需要启用WiFi的方法。如果调用需要启用WiFi的方法,此插件将自动启用WiFi。
抛出错误*
错误\u设置为可连接
wifi状态与呼叫不匹配(启用或禁用)这 . wifiWizard2 . getConnectedNetworkID ( )
在成功回调中返回当前连接的网络ID(仅当连接时),否则将调用失败回调
抛出错误*
获取连接的网络ID错误
无法确定当前连接的网络ID(可能未连接)3.1.1新+
这 . wifiWizard2 . 重置Bindall ( )
在不断开WiFi连接的情况下禁用bindAll到WiFi网络
这 . wifiWizard2 . setBindAll ( )
在不断开WiFi的情况下,将bindAll设置为WiFi网络
这 . wifiWizard2 . canConnectToInternet ( )
如果设备能够连接到,返回布尔值,true或false https://www.google.com 通过HTTP连接(因为ping不可靠)
未知错误仍然会像所有其他异步函数一样被抛出
如果你叫
连接
或使可能
并通过符合事实的
为宾德尔
,您的应用程序将强制ping通过wifi连接。如果你没有通过
符合事实的
(或通过假
)为了宾德尔
,并且wifi没有互联网连接,Android Lollipop+(API 21+)将使用手机连接到ping(由于wifi没有互联网时Android使用手机连接) 更多的细节
这
.
wifiWizard2
.
canConnectToRouter
(
)
作为
canpingwifi路由器
是出了名的不可靠,这个方法使用HTTP连接来测试是否能够连接到路由器(因为大多数路由器应该在端口80上运行web服务器)未知错误仍然会像所有其他异步函数一样被抛出
这对于测试非常有用,以确保你的Android应用在连接到WiFi后能够连接到专用网络
这是为了测试
宾德尔
支持Android Lollipop+ (API 21+)的问题,如果WiFi没有互联网连接,不能通过WiFi路由呼叫 看到Android的博客尝试连接端口80上的路由器IP HTTP服务器(示例:
http://192.168.0.1/
哪里192.168.0.1
为自动检测到的IP地址)新3.0.0 +
这 . wifiWizard2 . isConnectedToInternet ( )
如果设备能够ping 8.8.8.8,则返回布尔值,true或false
未知错误仍然会像所有其他异步函数一样被抛出
如果你叫
连接
或使可能
并通过符合事实的
为宾德尔
,您的应用程序将强制ping通过wifi连接。如果你没有通过
符合事实的
(或通过假
)为了宾德尔
,并且wifi没有互联网连接,Android Lollipop+(API 21+)将使用手机连接到ping(由于wifi没有互联网时Android使用手机连接) 更多的细节这 . wifiWizard2 . canpingwifi路由器 ( )
如果设备能够ping连接的WiFi路由器IP(从DHCP信息获取),则返回布尔值,true或false
版本3.1.1+使用HTTP连接来测试是否能够连接到路由器(因为ping之前没有工作)
未知错误仍然会像所有其他异步函数一样被抛出
这对于测试非常有用,以确保你的Android应用在连接到WiFi后能够连接到专用网络
这是为了测试
宾德尔
支持Android Lollipop+ (API 21+)的问题,如果WiFi没有互联网连接,不能通过WiFi路由呼叫 看到Android的博客这 . wifiWizard2 . enableWifi ( )
这 . wifiWizard2 . 禁用WiFi ( )
这 . wifiWizard2 . getWifiIP ( )
返回当前连接的WiFi的IPv4地址,如果没有找到IP或WiFi没有连接,则拒绝承诺
这 . wifiWizard2 . getWifiRouterIP ( )
返回IPv4 WiFi路由器IP从当前连接的WiFi,或拒绝承诺,如果无法确定,或WiFi未连接
抛出错误*
没有识别出有效的IP
如果无法确定有效的IP(从设备返回的IP为0.0.0.0
)这 . wifiWizard2 . getWifiIPInfo ( )
返回一个带有IPv4地址和子网的JSON对象
{"ip": "192.168.1.2", "subnet": "255.255.255.0"}
如果未找到或未连接,则拒绝承诺抛出错误*
没有识别出有效的IP
如果无法确定有效的IP(从设备返回的IP为0.0.0.0
)这 . wifiWizard2 . 重新连接 ( )
重新连接到当前活动的接入点, 如果我们当前断开连接。
抛出错误*
重新连接时出错
Android重新连接时返回错误这 . wifiWizard2 . 再结合 ( )
重新连接到当前活动的接入点, 即使我们已经连接在一起。
抛出错误*
错误重新关联
Android在重新关联时返回错误
这
.
wifiWizard2
.
getSSIDNetworkID
(
名称
)
从传递的SSID获取Android网络ID
这 . wifiWizard2 . 使残废 ( 名称 )
名称
可以是SSID(字符串)或网络ID(整数)关闭通过的SSID网络
请注意,大多数最新版本的Android只允许您禁用应用程序创建的网络
抛出错误*
UNABLE_TO_DISABLE
Android在禁用网络时返回失败禁用\u网络\u未找到
无法从已传递的SSID确定网络ID以禁用
这
.
wifiWizard2
.
请求许可
(
)
要求
访问\u FINE\u位置
permssion运行时需要这个Android权限
扫描
,startStart
和getScanResults
您可以通过手动运行此函数来请求权限,或者调用上述函数之一时,WifiWizard2将自动请求权限
抛出错误*
PERMISSION_DENIED
用户被拒绝访问设备
这
.
wifiWizard2
.
使可能
(
名称
,
宾德尔
,
等待连接
)
名称
可以是SSID(字符串)或网络ID(整数)宾德尔
应该设置为符合事实的
告诉Android通过wifi连接从Android应用程序路由所有连接如果没有互联网连接,Android Lollipop+ (API 21+)将不会路由连接到WiFi设备。通过
符合事实的
到宾德尔
将迫使Android通过Wifi从你的Android应用程序路由连接,无论互联网连接。如果您在通过WiFi连接到本地IP时遇到问题,因为它没有internet,请尝试启用
宾德尔
这应该可以解决问题。在我的测试过程中,Android的一些版本(5.0-7.1.2)仍然会在没有互联网的情况下通过WiFi路由连接,但有些版本会和不会工作是随机的。
测试Android Oreo+(8.0.0+)如果wifi没有互联网,100%的情况下它不会通过wifi路由连接,因此 必须 为Oreo或更新版本启用此选项,以便通过wifi从应用程序路由连接,而无需互联网。
当
宾德尔
已启用, 全部的 应用程序的连接将通过WiFi路由,直到您拨打断开
或使残废
有关详细信息,请参阅谷歌Android博客 更多的细节
此功能 只有 适用于Android Lollipop+ (API 21+),如果设备运行的API超过21,
宾德尔
将被忽略(因为大于21的API默认会这样做)启用通过的SSID网络
你 必须 呼叫
WifiWizard2.add (wifi)
在调用之前使可能
因为wifi配置必须存在才能启用(或以前使用过)连接
没有调用断开
)此方法不等待或验证连接到wifi网络,通过
符合事实的
到等待连接
仅在连接在完成状态下验证后将承诺返回给特定名称
抛出错误*
无法启用
——Android返回-1
表示失败安装
主人
跑
cordova插件添加https://github.com/tripflex/wifiwizard2
从主分支(GitHub上的最新版本)安装
要安装特定分支(添加
#标签
替换标签
从这个回购的标签,示例:cordova插件添加https://github.com/tripflex/wifiwizard2#v3.1.1
在此处查找可用的标记: https://github.com/tripflex/WifiWizard2/tags
如果您希望获得最新和最稳定的版本,请运行下面的“Releases”命令。
释放
跑
cordova插件添加cordova-plugin-wifiwizard2
流星
要在Meteor项目中安装和使用这个插件,你必须从NPM库中指定准确的版本: https://www.npmjs.com/package/cordova-plugin-wifiwizard2
截至2019年4月4日,最新版本为3.1.1:
流星添加科尔多瓦:cordova-plugin-wifiwizard2@3.1.1
错误/拒绝
方法现在返回格式化字符串错误,如下所述,而不是返回一般错误消息。这允许您自己检查返回的具体错误,并自定义错误消息。在即将发布的版本中,我可能会添加一些简单的方法来覆盖通用消息,或者设置自己的消息,但是现在,返回的错误可以在每个方法/函数下面找到。
通用的 抛出的错误
WIFI_NOT_ENABLED