代码之家  ›  专栏  ›  技术社区  ›  Nishant Jalan

请求网络权限的最简单方法是什么?

  •  0
  • Nishant Jalan  · 技术社区  · 1 年前

    我有一个Compose多平台应用程序,我需要该应用程序与服务器通信。因此,我在里面有Ktor客户的东西 shared/ 模块和上的Ktor服务器 server/ 单元

    我在本地网络上托管了服务器,并在模块上安装了应用程序。然而,logcat有一个信息:

    enter image description here

    我发现这是因为我没有安卓手机的安卓应用程序的任何网络权限。来自原生Android开发端,我想我可以将其添加到Manifest文件中(位于 composeApp/src/androidMain/AndroidManifest.xml ):

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android">
    
        <uses-permission android:name="android.permission.INTERNET" />
    
        <application>...</application>
    </manifest>
    

    在原生android版本中,这将起作用。然而,该应用程序不会安装在我的android手机上 uses-permission 线

    如何在Compose多平台应用程序中申请网络权限?

    1 回复  |  直到 1 年前
        1
  •  1
  •   Gabe Sechan    1 年前

    你不想要网络权限,你想要明文权限。这些是不同的。网络允许您向服务器发出请求。你有上面的。Cleartext允许您进行非HTTPS请求(无加密的HTTP请求)。您显示的错误是由于没有明文权限。这需要您通过将android:usesCleartextTraffic=“true”添加到清单中的应用程序标签来请求明文。请注意,出于安全原因,这样做可能会导致您的应用程序被游戏商店拒绝。

    推荐文章