diff --git a/docs/main/updating/9-0.md b/docs/main/updating/9-0.md index 5e10ecf78..b6dd382f3 100644 --- a/docs/main/updating/9-0.md +++ b/docs/main/updating/9-0.md @@ -23,3 +23,23 @@ Capacitor 9 removes the Java APIs that were deprecated in previous major version | `Bridge.CAPACITOR_HTTPS_INTERCEPTOR_START` | `CAPACITOR_HTTP_INTERCEPTOR_START`, all proxied requests are handled by it | | `Plugin.getConfigValue(String)` | `getConfig()` and the typed accessors on `PluginConfig` | | `MessageHandler(Bridge, WebView, Object)` constructor | `MessageHandler(Bridge, WebView)` | + +### Removal of the legacy `@NativePlugin` annotation + +The `@NativePlugin` annotation, deprecated since Capacitor 3.0 in favor of `@CapacitorPlugin`, has been removed in Capacitor 9 along with the deprecated permission and activity-result APIs that only existed to support it. For the overall migration pattern (annotation switch, callback-based activity and permission results, new Permissions API), see the [Capacitor 3 plugin migration guide](/updating/plugins/3-0). The specific method replacements removed in this release are listed below. + +| Removed | Replacement | +| :------ | :---------- | +| `@NativePlugin` | `@CapacitorPlugin` | +| `@CapacitorPlugin(requestCodes = {...})` attribute | Use `Plugin.startActivityForResult(PluginCall, Intent, String)` with `@ActivityCallback` for activity results, and `Plugin.requestPermissionForAlias(...)` / `requestPermissionForAliases(...)` / `requestAllPermissions(...)` with `@PermissionCallback` for permission requests | +| `Bridge.getPluginWithRequestCode(int)` | No replacement — use the callback-based `@ActivityCallback` / `@PermissionCallback` pattern instead | +| `Plugin.saveCall(PluginCall)` | `Bridge.saveCall(PluginCall)` or `PluginCall.setKeepAlive(true)` | +| `Plugin.getSavedCall()` (no-arg) | `Bridge.getSavedCall(String)` | +| `Plugin.freeSavedCall()` | `PluginCall.release(Bridge)` | +| `Plugin.hasDefinedPermissions(String[])` | `Plugin.isPermissionDeclared(String)` | +| `Plugin.hasPermission(String)` | `Plugin.getPermissionState(String)` / `getPermissionStates()`, or `ActivityCompat.checkSelfPermission(Context, String)` | +| `Plugin.pluginRequestPermission(String, int)` | `Plugin.requestPermissionForAlias(...)` with `@PermissionCallback` | +| `Plugin.pluginRequestPermissions(String[], int)` | `Plugin.requestPermissionForAliases(...)` with `@PermissionCallback` | +| `Plugin.pluginRequestAllPermissions()` | `Plugin.requestAllPermissions(PluginCall, String)` with `@PermissionCallback` | +| `Plugin.startActivityForResult(PluginCall, Intent, int)` | `Plugin.startActivityForResult(PluginCall, Intent, String)` with `@ActivityCallback` | +| `Bridge.startActivityForPluginWithResult(PluginCall, Intent, int)` | `Plugin.startActivityForResult(PluginCall, Intent, String)` with `@ActivityCallback` | diff --git a/docs/plugins/creating-plugins/android-guide.md b/docs/plugins/creating-plugins/android-guide.md index 92db9de2b..55de6d183 100644 --- a/docs/plugins/creating-plugins/android-guide.md +++ b/docs/plugins/creating-plugins/android-guide.md @@ -139,7 +139,7 @@ Before following this section, make sure you've set up your permission aliases a ### Annotation Changes -> Still using `@NativePlugin`? See the [upgrade guide](/main/updating/plugins/3-0.md#use-the-new-capacitorplugin-annotation) to switch to `@CapacitorPlugin`. +> The `@NativePlugin` annotation was removed in Capacitor 9. If your plugin still uses it, see the [upgrade guide](/main/updating/plugins/3-0.md#use-the-new-capacitorplugin-annotation) to switch to `@CapacitorPlugin`. ```diff @CapacitorPlugin(