<!--
{
  "availability" : [
    "iOS: 17.5.0 -",
    "iPadOS: 17.5.0 -",
    "macOS: -",
    "tvOS: 17.5.0 -",
    "visionOS: 1.2.0 -",
    "watchOS: 10.5.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "BrowserEngineKit",
  "identifier" : "/documentation/BrowserEngineKit/BEWebAppManifest",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "BrowserEngineKit"
    ],
    "preciseIdentifier" : "c:objc(cs)BEWebAppManifest"
  },
  "title" : "BEWebAppManifest"
}
-->

# BEWebAppManifest

An object that represents a web app manifest.

```
class BEWebAppManifest
```

## Overview

To add a web app or bookmark to someone’s Home Screen:

1. Create a <doc://com.apple.documentation/documentation/SafariServices/SFAddToHomeScreenActivityItem> that represents the web app or bookmark.
2. A web app indicates its manifest using a `<link/>` element with the attribute `rel=manifest`; the `href` attribute is a URL that locates the manifest JSON. If the website offers a web app manifest, initialize a `BEWebAppManifest` with the contents of the web app’s manifest.
3. Create a <doc://com.apple.documentation/documentation/UIKit/UIActivityViewController> with the `SFAddToHomeScreenActivityItem` you created in step 1 in its list of activity items.
4. Present the `UIActivityViewController`.
5. When someone selects the Add to Home Screen activity, the system calls the activity item’s <doc://com.apple.documentation/documentation/SafariServices/SFAddToHomeScreenActivityItem/getWebAppManifest(completionHandler:)> method. Pass the web app manifest you created in step 2 to the completion handler in your implementation, or `nil` if the website doesn’t offer a web app manifest or you can’t fetch the manifest.

## Topics

### Creating a web app manifest

[`init(JSONData:manifestURL:)`](/documentation/BrowserEngineKit/BEWebAppManifest/init(JSONData:manifestURL:)-4zjpz)

[`-  initWithJSONData:manifestURL:`](/documentation/BrowserEngineKit/BEWebAppManifest/init(jsonData:manifestURL:)-3azfg)

Returns nil if manifestURL is invalid or jsonData cannot be parsed.

### Getting manifest information

[`jsonData`](/documentation/BrowserEngineKit/BEWebAppManifest/jsonData)

[`manifestURL`](/documentation/BrowserEngineKit/BEWebAppManifest/manifestURL)

## Relationships

### Conforms To

[`Equatable`](/documentation/Swift/Equatable)

[`CVarArg`](/documentation/Swift/CVarArg)

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

[`Hashable`](/documentation/Swift/Hashable)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)