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 'application';
...
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 >> 24 ) & 0xFF }.${ (ip >> 16 ) & 0xFF }.${ (ip >> 8 ) & 0xFF }.${ ip & 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]