【问题标题】:Connect to WiFi using iOS app with GUI User Request not Programmatically使用带有 GUI 用户请求的 iOS 应用程序连接到 WiFi 不是以编程方式
【发布时间】:2018-01-11 07:43:26
【问题描述】:

由于在 iOS 中以编程方式添加 WiFi 网络几乎不可能不越狱 Iphone :(

是否可以让应用程序提供隐藏在星****中的wifi密码并要求用户单击应用程序中的按钮并使用隐藏的密码连接到wifi网络?,

我的意思是:想法: 应用程序提供 wifi 密码,用户无需看到纯文本密码, 但可以单击一个按钮打开一个意图(对话框或提供的密码并手动按连接)以使用隐藏的 WiFi 密码连接到 WiFi (GUI 用户请求不是以编程方式)

是否可以在不越狱 iphone 的情况下在 Swift 或 Objective-C 中做到这一点?

【问题讨论】:

    标签: ios objective-c iphone swift wifi


    【解决方案1】:

    是的,有可能。

    您必须将您的应用注册为 HotSpot Helper 才能访问 NetworkExtension 框架中所需的 API。

    看看NetworkExtension.NEHotspotHelperHotspot Network Subsystem Guide

    对于未来的问题,请提供一些代码来展示您迄今为止所做的尝试。这让其他人更容易提供有用的解决方案,而其他人也更容易寻找相同的解决方案。

    【讨论】:

    • 抱歉,我没有提供代码,因为我不是 iOS 开发人员,我是 android 开发人员,我有一个在 android 上运行良好的应用程序,但它在 iOS 上无法运行,因为关于这件事,所以我一直在努力寻找这个问题的解决方案将近 1.5 年,所以在我找到这个想法并询问之后,现在你们帮我解决了 50% 的主要问题,剩下的问题是(在 Iphone 上忘记 WiFi 密码)无法以编程方式完成,因此如果用户想连接到新密码,至少该应用程序会要求用户忘记 iPhone 中的当前 WiFi 密码
    • 可以使用用户 GUI 请求来完成吗?,就像在上面的问题中添加?,PS:当我找到一个完美的解决方案时,我已经开始在 iOS 上编程了 :),谢谢你..
    【解决方案2】:

    您必须使用 MultipeerConnectivity 进行 GUI wifi 连接。

    第一步:导入MultipeerConnectivity

    第二步:

       var browser : MCBrowserViewController!
    
       var assistant : MCAdvertiserAssistant!
    
       var session : MCSession!
    
       var peerID: MCPeerID!
    

    第三步:

        Add  MCBrowserViewControllerDelegate, MCSessionDelegate
    

    第四步:

        self.peerID = MCPeerID(displayName: UIDevice.current.name)
    
        self.session = MCSession(peer: peerID)
    
        self.session.delegate = self
    
        self.browser = MCBrowserViewController(serviceType:serviceType,
                                               session:self.session)
    
        self.browser.delegate = self;
    
        self.assistant = MCAdvertiserAssistant(serviceType:serviceType,
                                               discoveryInfo:nil, 
                                                    session:self.session)
    
        self.assistant.start()
    

    第五步:接下来使用会话委托方法。

    我认为这很有帮助。

    【讨论】:

    • 使用MultipeerConnectivity 只为一组设备提供一个会话以使用 Wi-Fi 或蓝牙共享数据,我不明白这如何解决 OP 的问题?
    猜你喜欢
    • 2016-06-07
    • 1970-01-01
    • 2016-11-15
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 2013-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多