菜鸟教程小白 发表于 2022-12-13 04:36:43

ios - NativeScript - 获取设备本地 IP 地址


                                            <p><p>我想使用 NativeScript/JavaScript 获取设备的本地 IP 地址。</p>

<p>我进行了搜索并找到了一种在 Android 上执行此操作的方法,但我希望有一个也适用于 iOS 的跨平台解决方案。</p>

<p>我目前正在使用 <a href="https://github.com/rtodea/NSPlayground" rel="noreferrer noopener nofollow"><code>NSPlayground</code></a>在运行 <code>iOS 11.4</code> 的 iPhone 6S 上。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>如果您没有找到可以轻松完成此操作的插件,您将不得不 <a href="https://docs.nativescript.org/core-concepts/accessing-native-apis-with-javascript" rel="noreferrer noopener nofollow">access the native platform-specific APIs</a>自己在每个平台上做。</p>

<p>在 Android 上,您可以执行以下操作:</p>

<pre><code>import * as application from &#39;application&#39;;

...

const wifiService: any = application.android.context
    .getSystemService(android.content.Context.WIFI_SERVICE);

// See https://developer.android.com/reference/android/net/wifi/WifiManager#getConnectionInfo()
const wifiInfo: any = wifiService.getConnectionInfo();

// See https://developer.android.com/reference/android/net/wifi/WifiInfo.html#getIpAddress()
const ip: number = wifiInfo.getIpAddress();
</code></pre>

<p>注意 <a href="https://developer.android.com/reference/android/net/wifi/WifiInfo.html#getIpAddress()" rel="noreferrer noopener nofollow"><code>WifiInfo#getIpAddress</code></a> 返回的 IP是 TypeScript 中的 <code>number</code>(Java 中的 <code>int</code>),这意味着您需要一种方法来将其转换为 <a href="https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing" rel="noreferrer noopener nofollow">CIDR notation</a> :</p>

<p></p><div class="snippet"data-lang="js"data-hide="false"data-console="true"data-babel="false">
<div class="snippet-code">
<pre class="snippet-code-js lang-js prettyprint-override"><code>function intToCDIRIP(ip) {
   return `${ (ip &gt;&gt; 24 ) &amp; 0xFF }.${ (ip &gt;&gt; 16 ) &amp; 0xFF }.${ (ip &gt;&gt; 8 ) &amp; 0xFF }.${ ip &amp; 0xFF }`;
}

console.log(intToCDIRIP(33353454354)); // Should be 196.5.83.18</code></pre>

                                                <p style="font-size: 20px;">关于ios - NativeScript - 获取设备本地 IP 地址,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/52171755/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/52171755/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - NativeScript - 获取设备本地 IP 地址