使用 Cordova 应用程序在 iOS 上列出附近的 wifi 网络
Posted
技术标签:
【中文标题】使用 Cordova 应用程序在 iOS 上列出附近的 wifi 网络【英文标题】:List nearby wifi networks on iOS with a Cordova app 【发布时间】:2019-01-12 21:40:00 【问题描述】:我正在使用 Cordova CLI(不是 PhoneGap)编写一个跨平台移动应用程序来控制物联网设备。如何显示附近 Wifi 网络的列表,以便用户可以选择并连接到它?
我尝试过 WifiWizard 和 WifiWizard2,但它们似乎对 ios 的支持有限。而Cordova's core Connection plugin 只能显示用户是否连接到 wifi、蜂窝或什么都没有。
我还发现了一些与 wifi 相关的 Cordova 插件,它们似乎已经失去了对 iOS 的支持,例如 NativeSettingsOpener。
我已经尝试过这个基本的 WifiWizard2 功能:
WifiWizard2.getConnectedSSID().then(function(network)
alert(network);
).catch(function(error)
alert('oops: ', error);
);
当我在浏览器的本地主机上运行它时,它正确地提醒我我没有连接到网络。
我希望它也可以在 iOS 上运行。但是,当我在使用 Cordova 为 iOS 编译它之后在 iOS 上运行这个函数时,它既没有给我网络也没有给我一个错误。
【问题讨论】:
除非设备支持无线附件配置 (WAC),否则您无法在 iOS 上的应用程序中执行此操作,该配置已在 MFi 计划下获得许可。您需要指导用户打开 iOS 偏好设置并手动连接到正确的 WiFi 网络。 【参考方案1】:您必须异步加载扫描功能。下面是一个使用 ionic 和 Cordova 的示例:
import Component from '@angular/core';
declare var WifiWizard2: any;
@Component(
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
)
export class HomePage
results = [];
info_txt = "";
async getNetworks()
this.info_txt = "loading...";
try
let results = await WifiWizard2.scan();
this.results = results;
this.info_txt = "";
catch (error)
this.info_txt = error;
我自己网站上的完整示例在这里https://www.tonyfox.co.uk/posts/using-wifiwizard2-with-ionic/
【讨论】:
请注意,必须明确披露您可能与您推荐/链接到的产品或网站的任何关联,否则这些帖子很可能会作为垃圾邮件被删除。 对不起@TylerH,没有发布,我再次更新了答案以提及这一点 请注意,在 typescript 中声明 var 可以被 import 替换,强烈建议不要使用 type any 能否添加连接和断开 wifi 的示例代码? @TonyFox,此插件扫描方法抛出以下错误:WifiWizard2 scan WifiWizard21044267574 ["options": [以上是关于使用 Cordova 应用程序在 iOS 上列出附近的 wifi 网络的主要内容,如果未能解决你的问题,请参考以下文章
Cordova 4.0 config.xml 中的 Android 权限