【问题标题】:How can I get WiFi Network information (SSID) in a Phonegap app?如何在 Phonegap 应用程序中获取 WiFi 网络信息 (SSID)?
【发布时间】:2015-07-02 10:50:56
【问题描述】:

我正在制作一个 Phonegap 应用程序。我的要求是根据用户使用的是家庭网络还是公共网络,向用户显示不同的视图。是否有任何插件或任何其他方式可以帮助获取连接的网络信息。 (网络 SSID)。

谢谢。

【问题讨论】:

    标签: cordova phonegap-plugins phonegap-build


    【解决方案1】:

    Android 和 iOS 有这个 plugin

    cordova plugin add wifiwizard
    

    如果您想获取您所连接网络的当前 SSID:

    function ssidHandler(s) {
        alert("Current SSID"+s);
    }
    
    function fail(e) {
        alert("Failed"+e);
    }
    
    function getCurrentSSID() {
        WifiWizard.getCurrentSSID(ssidHandler, fail);
    }
    

    如果您想获取 SSID 列表,您之前已配置

    function listHandler(a) {
        alert(a);
    }
    
    function getWifiList() {
       WifiWizard.listNetworks(listHandler, fail);
    }
    

    如果要返回完整的扫描结果:

    function listHandler2(a) {
        alert(JSON.stringify(a));
    }
    
    function getScanResult() {
        WifiWizard.getScanResults(listHandler2, fail);
     }
    

    测试:

    <button onclick="getCurrentSSID()">Get Current SSID</button> 
    <button onclick="getWifiList()">Get configured SSID list</button> 
    <button onclick="getScanResult()">Get Scan result</button> 
    

    请从我提供的链接所提供的功能列表中查看您究竟需要什么来完成工作,如果您遇到问题,请回复。

    【讨论】:

    • 是的,请告诉我们。我也对这个感兴趣。
    • WifiWizard支持iOS
    • 这应该在文档中:/
    • 根据他们提到的文档,如果应用程序正在使用除GetCurrentSSID 之外的其他 API(例如 GetScanResultlistNetworks)苹果将拒绝该应用程序,任何机构已经走了那么远?
    • 错误:注册表在registry.npmjs.org/com.pylonproducts.wifiwizard 上为 GET 返回 404
    【解决方案2】:

    虽然 WifiWizard 很棒,但它似乎不再在 GitHub 上维护。

    您可以使用正在积极开发中的WifiWizard2作为替代,因为它支持相同的方法:

    cordova plugin add https://github.com/tripflex/WifiWizard2.git
    
    WifiWizard2.getConnectedSSID(success, fail)
    WifiWizard2.getConnectedBSSID(success, fail)
    WifiWizard2.scan([options], success, fail)
    

    WifiWizard2 似乎也同时支持 Android 和 iOS。


    但是,如果您像我一样还需要将设备的 HotspotWifi Tethering 与 Cordova 一起使用,我推荐使用 cordova-hotspot-plugin 包。不幸的是,该项目停止;但对于较旧的 Android API 级别,它似乎仍然有效。

    此插件支持多种方法,完整列表可用here

    【讨论】:

    • 谢谢你,第一个两个选项有效,但是扫描一个返回 []。你知道为什么吗?在 Android 设备上使用最新版本的插件。
    • 只是让大家知道,如果您在较新版本的 Android 中得到一个空的 [],那是因为您需要为应用授予位置权限。设置 >> 应用 >> theApp >> 权限 >> 位置
    • 我已经多次尝试使用此代码使其工作,但它不起作用:WifiWizard2.scan(function(response) { ‎ alert(JSON.stringify(response)); ‎} );你介意帮忙吗? @xxxxxxxxxxxxxxx 我正在尝试获取可用网络列表
    • WifiWizard2 不再受支持且不适用于 Android 11+ 或 iOS 14.5+
    猜你喜欢
    • 2021-02-05
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    相关资源
    最近更新 更多