首页 > 解决方案 > 如何在 xamarin 解决方案中使 android 清单适应 UWP 清单

问题描述

我正在尝试构建我的第一个 xamarin 应用程序。我对 xamarin 和 uwp 来说是全新的/绿色的。我在这里学习教程: https ://www.youtube.com/watch?v= 9opLnX4G9EQ 代码可以在这里找到: https ://github.com/sinhakislay/MSGraphXamarin

我正在尝试将此示例改编为 UWP 客户端而不是 android。我在视频中(15 分 10 秒)。他在其中展示了如何编辑清单文件以指定“msauth”方案和主机名。但我不确定如何为我的 UWP 应用程序做同样的事情。这是他的代码:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1" android:versionName="1.0" package="com.companyname.MSGraphXamarin">
    <uses-sdk android:minSdkVersion="21" android:targetSdkVersion="28" />
    <application android:label="MSGraphXamarin.Android">
        <activity android:name="microsoft.identity.client.BrowserTabActivity">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="msauth" android:host="com.companyname.MSGraphXamarin" />
            </intent-filter>
        </activity>
    </application>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
</manifest>

这是我目前在 Default.rd.xml 文件中的内容:

<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
  <Application>
    <!--
      An Assembly element with Name="*Application*" applies to all assemblies in
      the application package. The asterisks are not wildcards.
    -->
    <Assembly Name="*Application*" Dynamic="Required All" />
    
    <!-- Add your application specific runtime directives here. -->

  </Application>
</Directives>

我试图将 * 复制到该部分,但它抱怨它不知道“android”命名空间是什么。我现在正在尝试自己速成课程,了解清单实际上是什么/它们是如何工作的。但任何提示将不胜感激。

标签: xamarinuwp

解决方案


您必须考虑到每种类型的平台都是不同的。Android 通常在谈论权限时最烦人,并且必须在清单中指定。

您不应该尝试将 android.manifest “翻译”到另一个平台,因为每个平台都不同。

可能会有所帮助


推荐阅读