有没有办法像在iOS中一样在macOS下将用户发送到应用程序的隐私设置?

时间:2019-10-10 20:26:19

标签: ios maccatalyst

与许多应用程序一样,如果某个隐私权限已被禁用,我的iOS应用程序将为用户提供打开应用程序设置页面的机会。

在iOS中,使用特殊的String emailtxt1 = text1.getText().toString(); String emailtxt2 = text2.getText().toString(); String emailtxt3 = text3.getText().toString(); String emailtxt4 = text4.getText().toString(); String emailtxt5 = text5.getText().toString(); String emailTxt = ""; Intent intent = new Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_EMAIL, new String[]{""}); intent.putExtra(Intent.EXTRA_SUBJECT, "Tasks"); if (check1.isChecked()){ emailTxt = emailTxt + "\n" + emailtxt1; } if (check2.isChecked()){ emailTxt = emailTxt + "\n" + emailtxt2; } if (check3.isChecked()){ emailTxt = emailTxt + "\n" + emailtxt3; } if (check4.isChecked()){ emailTxt = emailTxt + "\n" + emailtxt4; } if (check5.isChecked()){ emailTxt = emailTxt + "\n" + emailtxt5; } intent.putExtra(Intent.EXTRA_TEXT, emailTxt); intent.setType("message/rfc822"); startActivity(Intent.createChooser(intent, "Choose an emailTxt client")); / UIApplicationOpenSettingsURLString URL可以将用户带到“设置”应用的应用特定页面。除了在应用程序提供的Settings.bundle中的任何设置(如果有)之外,用户还可以在其中看到该应用程序使用的各种隐私设置。

在iOS应用程序的Mac Catalyst端口上工作时,此操作无法达到预期的效果。特殊设置URL的相同用法显示用户单击“首选项...”菜单时看到的相同首选项窗格。而这仅仅是应用程序的Settings.bundle提供的。该应用程序的隐私设置未在iOS中显示。

我可以在macOS设置应用程序中查看我的应用程序的隐私设置,方法是单击“安全和隐私”,然后单击“隐私”选项卡,然后单击左侧列表中的相应项,例如“联系人”或“照片”。但是这些设置未按应用分组。

有没有办法获得iOS应用程序的macOS版本以在一个地方显示各种隐私设置,例如在iOS上运行时?如果不是,是否至少有一种方法可以直接在macOS中启动“设置”应用并显示“隐私”窗格?

1 个答案:

答案 0 :(得分:0)

这与您在iOS中获得的并不完全相同,但与我认为可以得到的接近。根据在this answerCocoa button opens a System Preference page上找到的信息,我将代码更新如下:

Objective-C:

    NSString *url;
#if TARGET_OS_MACCATALYST
    url = @"x-apple.systempreferences:com.apple.preference.security?Privacy_Calendars"; // Update as needed
#else
    url = UIApplicationOpenSettingsURLString;
#endif
    [UIApplication.sharedApplication openURL:[NSURL URLWithString:url] options:@{} completionHandler:nil];

迅速:

let url: String
#if targetEnvironment(macCatalyst)
url = "x-apple.systempreferences:com.apple.preference.security?Privacy_Calendars" // Update as needed
#else
url = UIApplication.openSettingsURLString
#endif
UIApplication.shared.open(URL(string: url)!)

以下是一些可能的隐私设置的网址:

Privacy             x-apple.systempreferences:com.apple.preference.security?Privacy
Privacy-Photos      x-apple.systempreferences:com.apple.preference.security?Privacy_Photos
Privacy-Camera      x-apple.systempreferences:com.apple.preference.security?Privacy_Camera
Privacy-Microphone  x-apple.systempreferences:com.apple.preference.security?Privacy_Microphone
Privacy-Location    x-apple.systempreferences:com.apple.preference.security?Privacy_LocationServices
Privacy-Contacts    x-apple.systempreferences:com.apple.preference.security?Privacy_Contacts
Privacy-Calendars   x-apple.systempreferences:com.apple.preference.security?Privacy_Calendars
Privacy-Reminders   x-apple.systempreferences:com.apple.preference.security?Privacy_Reminders

注意:虽然这在开发中可行,但我尚不确定这是否将批准用于App Store。