Skip to content

Commit

Permalink
Merge pull request #35 from taras-omelchuk/capacitor-base
Browse files Browse the repository at this point in the history
Updates for Cordova SDK v11.1 release
  • Loading branch information
matt-falkner committed Aug 31, 2023
2 parents 0d3550a + 63194d4 commit 3b62ff6
Show file tree
Hide file tree
Showing 76 changed files with 789 additions and 9,705 deletions.
54 changes: 45 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ All the other BlackBerry Dynamics Cordova plugins require the Capacitor Base plu
- iOS

#### Node.js
- We recommend to use the latest stable version of Node.js 12.x (LTS).
- We recommend to use the latest stable version of Node.js 18.x (LTS).

#### Ionic
- Ionic 6
Expand All @@ -21,6 +21,15 @@ All the other BlackBerry Dynamics Cordova plugins require the Capacitor Base plu
- `--type=ionic-vue`
- `--capacitor` integration

#### Dynamics SDK for iOS and Android
BlackBerry Dynamics SDK for iOS
- BlackBerry Dynamics SDK for iOS v11.1, check environment requirements [here](https://docs.blackberry.com/en/development-tools/blackberry-dynamics-sdk-ios/11_1).
- BlackBerry Dynamics SDK for iOS v11.2, check environment requirements [here](https://docs.blackberry.com/en/development-tools/blackberry-dynamics-sdk-ios/11_2).

BlackBerry Dynamics SDK for Android
- BlackBerry Dynamics SDK for Android v11.1, check environment requirements [here](https://docs.blackberry.com/en/development-tools/blackberry-dynamics-sdk-android/11_1).
- BlackBerry Dynamics SDK for Android v11.2, check environment requirements [here](https://docs.blackberry.com/en/development-tools/blackberry-dynamics-sdk-android/11_2).

## Preconditions

- Install `xcodeproj` and `plist` Ruby gems:
Expand All @@ -33,17 +42,18 @@ Dynamics SDK for iOS and Android are installed as part of the `capacitor-plugin-
### BlackBerry Dynamics SDK for iOS integration
The integration uses the iOS "Dynamic Framework" version of BlackBerry Dynamics as the static library is no longer supported.
There are a few options to integrate BlackBerry Dynamics SDK for iOS.
#### Using latest released version - default
By default, `capacitor-plugin-bbd-base` plugin will integrate **latest** available BlackBerry Dynamics SDK for iOS using following podspec: `https://software.download.blackberry.com/repository/framework/dynamics/ios/11.0.1.137/BlackBerryDynamics-11.0.1.137.podspec`.
> NOTE: If one of the below integration methods was used there is an option to reset **default** configuration by running following command:
`$ npx set-dynamics-podspec --default`
#### Using default (11.1) released version - default
By default, `cordova-plugin-bbd-base` plugin will integrate **11.1** (11.1.0.62) version BlackBerry Dynamics SDK for iOS using following podspec: `https://software.download.blackberry.com/repository/framework/dynamics/ios/11.1.0.62/BlackBerryDynamics-11.1.0.62.podspec`.
> NOTE: If one of the below integration methods was used there is an option to reset **default** configuration by running following command:
`$ npx set-dynamics-podspec --default`
`$ ionic cap build ios`

#### Using other released version
There is possibility to integrate other released build of BlackBerry Dynamics SDK for iOS.
Following command should be run:
There is possibility to integrate other released build of BlackBerry Dynamics SDK for iOS.
Currently, the **latest** supported versions is 11.2.
Following command should be run to use BlackBerry Dynamics SDK for iOS v11.2:
```
$ npx set-dynamics-podspec --url "https://software.download.blackberry.com/repository/framework/dynamics/ios/10.2.0.83/BlackBerryDynamics-10.2.0.83.podspec"
$ npx set-dynamics-podspec --url "https://software.download.blackberry.com/repository/framework/dynamics/ios/11.2.0.26/BlackBerryDynamics-11.2.0.26.podspec"
$ ionic cap build ios
```
#### Using locally downloaded version
Expand All @@ -53,6 +63,29 @@ Following command should be run:
$ npx set-dynamics-podspec --path "/Users/<user>/Downloads/gdsdk-release-dylib-X.X.X.X/BlackBerry_Dynamics_SDK_for_iOS_vX.X.X.X_dylib"
$ ionic cap build ios
```
### BlackBerry Dynamics SDK for Android integration
By default, `capacitor-plugin-bbd-base` plugin will integrate **11.1** (11.1.0.62) version of BlackBerry Dynamics SDK for Android.
#### Using other released version
There is possibility to integrate other released build of BlackBerry Dynamics SDK for Android.
Currently, the **latest** supported versions is 11.2.
Following steps should be done to use BlackBerry Dynamics SDK for Android v11.2:
- download `capacitor-plugin-bbd-base` from Github as ZIP
- unzip downloaded "BlackBerry-Dynamics-Cordova-Plugins-capacitor-base.zip" and move it to `<path>/BlackBerry_Dynamics_SDK_for_Cordova_vX.X.X.X/plugins/`
- update versions of Dynamics dependencies in `<path>/BlackBerry_Dynamics_SDK_for_Cordova_vX.X.X.X/plugins/capacitor-plugin-bbd-base/scripts/gradle/bbd.gradle`:
```
implementation 'com.blackberry.blackberrydynamics:android_handheld_platform:11.2.0.13'
implementation 'com.blackberry.blackberrydynamics:android_handheld_backup_support:11.2.0.13'
implementation 'com.blackberry.blackberrydynamics:android_webview:11.2.0.13'
```
- run following commands:
```
$ cd <path_to_your_app>
// Remove Capacitor Base plugin only if it was previously added
$ npm run cleanup
$ npm uninstall capacitor-plugin-bbd-base
$ ionic cap sync
$ npm install <path>/BlackBerry_Dynamics_SDK_for_Cordova_vX.X.X.X/plugins/capacitor-plugin-bbd-base/scripts/gradle/bbd.gradle
```

## BBWebView integration on Android

Expand All @@ -69,7 +102,10 @@ It becomes the default webview for Dynamics Ionic-Capacitor applications on Andr

## Uninstallation

`$ npm uninstall capacitor-plugin-bbd-base`
```
$ npm run cleanup
$ npm uninstall capacitor-plugin-bbd-base
```

## Supported Dynamics Cordova plugins

Expand Down
9 changes: 4 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
{
"name": "capacitor-plugin-bbd-base",
"type": "module",
"version": "1.1.0",
"dynamicsPodSpec":"https://software.download.blackberry.com/repository/framework/dynamics/ios/11.0.1.137/BlackBerryDynamics-11.0.1.137.podspec",
"dynamicsPodSpec": "https://software.download.blackberry.com/repository/framework/dynamics/ios/11.1.0.62/BlackBerryDynamics-11.1.0.62.podspec",
"description": "BlackBerry Dynamics Capacitor Base plugin.",
"license": "SEE LICENSE IN LICENSE",
"homepage": "https://community.blackberry.com",
"repository": {
"name": "capacitor-plugin-bbd-base",
"version": "1.0.0",
"version": "1.1.0",
"private": true,
"type": "git",
"url": "https://github.com/blackberry/BlackBerry-Dynamics-Cordova-Plugins/tree/capacitor-base"
Expand All @@ -29,7 +30,5 @@
"base"
],
"devDependencies": {},
"dependencies": {
"fs-extra": "^2.0.0"
}
"dependencies": {}
}
66 changes: 3 additions & 63 deletions plugin.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>

<!--
Copyright (c) 2022 BlackBerry Limited. All Rights Reserved.
Copyright (c) 2023 BlackBerry Limited. All Rights Reserved.
Some modifications to the original cordova-plugin-file
from https://github.com/apache/cordova-plugin-file/
Expand Down Expand Up @@ -29,13 +29,13 @@
<name>BlackBerry Dynamics Capacitor Base plugin</name>
<description>
This is Base plugin. It adds all the needed configuration to enable using
BlackBerry Dynamics in your Capacotpr Ionic application.
BlackBerry Dynamics in your Capacitor Ionic application.
All the other BlackBerry Dynamics Cordova plugins require the Base plugin to be installed.
</description>
<keywords>capacitor,plugin,base</keywords>
<license>SEE LICENSE IN LICENSE</license>
<info>
This plugin enables using BlackBerry Dynamics in your Capacotpr Ionic application.
This plugin enables using BlackBerry Dynamics in your Capacitor Ionic application.
</info>

<engines>
Expand All @@ -47,18 +47,9 @@
<platform name="android">
<framework src="scripts/gradle/bbd.gradle" custom="true" type="gradleReference" />

<resource-file src="src/android/res/drawable/ic_transparent.xml" target="res/drawable/ic_transparent.xml" />
<resource-file src="src/android/res/layout/bb_bridge_layout_main.xml" target="res/layout/bb_bridge_layout_main.xml" />
<resource-file src="src/android/res/layout/bb_fragment_bridge.xml" target="res/layout/bb_fragment_bridge.xml" />
<resource-file src="src/android/res/values/attrs.xml" target="res/values/attrs.xml" />
<resource-file src="src/android/res/values/colors.xml" target="res/values/colors.xml" />
<resource-file src="src/android/res/values/strings.xml" target="res/values/strings.xml" />
<resource-file src="src/android/res/values/styles.xml" target="res/values/styles.xml" />
<resource-file src="assets/android/settings.json" target="assets/settings.json" />
<resource-file src="assets/android/com.blackberry.dynamics.settings.json" target="assets/com.blackberry.dynamics.settings.json" />

<source-file src="src/android/com/getcapacitor/dynamics/BBDLifeCycle.java" target-dir="src/com/good/gd/cordova/core/" />
<source-file src="src/android/com/getcapacitor/dynamics/BBDCordovaApp.java" target-dir="src/com/good/gd/cordova/core/" />
<source-file src="src/android/com/getcapacitor/dynamics/helpers/CordovaGDServiceHelper.java" target-dir="src/com/good/gd/cordova/plugins/helpers/" />
<source-file src="src/android/com/getcapacitor/dynamics/helpers/GDBasePlugin.java" target-dir="src/com/good/gd/cordova/plugins/" />
<source-file src="src/android/com/getcapacitor/dynamics/launcher/BBDLauncherInterfaceProvider.java" target-dir="src/com/good/gd/cordova/core/launcher/" />
Expand Down Expand Up @@ -104,57 +95,6 @@
<source-file src="src/android/com/getcapacitor/dynamics/mailto/BBDMailToHandler.java" target-dir="src/com/good/gd/cordova/core/mailto/" />
<source-file src="src/android/com/getcapacitor/dynamics/mailto/MailToInterceptor.java" target-dir="src/com/good/gd/cordova/core/mailto/" />
<source-file src="src/android/com/getcapacitor/dynamics/mailto/MailToProvider.java" target-dir="src/com/good/gd/cordova/core/mailto/" />
<source-file src="src/android/com/getcapacitor/dynamics/webview/engine/BBDCordovaWebChromeClient.java" target-dir="src/com/good/gd/cordova/core/webview/engine/" />
<source-file src="src/android/com/getcapacitor/dynamics/webview/engine/BBDCordovaWebView.java" target-dir="src/com/good/gd/cordova/core/webview/engine/" />
<source-file src="src/android/com/getcapacitor/dynamics/webview/engine/BBDCordovaWebViewEngine.java" target-dir="src/com/good/gd/cordova/core/webview/engine/" />
<source-file src="src/android/com/getcapacitor/dynamics/webview/engine/BBDExposedJsApi.java" target-dir="src/com/good/gd/cordova/core/webview/engine/" />
<source-file src="src/android/com/getcapacitor/ActivityCallback.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/CapacitorPlugin.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/Permission.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/PermissionCallback.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/CapacitorCordovaCookieManager.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/MockCordovaInterfaceImpl.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/MockCordovaWebViewImpl.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/AssetUtil.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/WebView.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/HostMask.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/JSONUtils.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/PermissionHelper.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/WebColor.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/AndroidProtocolHandler.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/App.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/Bridge.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/BridgeActivity.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/BridgeFragment.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/BridgeWebChromeClient.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/BridgeWebViewClient.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/CapacitorWebView.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/CapConfig.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/FileUtils.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/InvalidPluginException.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/InvalidPluginMethodException.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/JSArray.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/JSExport.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/JSExportException.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/JSInjector.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/JSObject.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/Logger.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/MessageHandler.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/NativePlugin.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/PermissionState.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/Plugin.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/PluginCall.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/PluginConfig.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/PluginHandle.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/PluginInvocationException.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/PluginLoadException.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/PluginManager.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/PluginMethod.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/PluginMethodHandle.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/PluginResult.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/UriMatcher.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/WebViewListener.java" target-dir="src/com/good/gd/cordova/capacitor/" />
<source-file src="src/android/com/getcapacitor/WebViewLocalServer.java" target-dir="src/com/good/gd/cordova/capacitor/" />

</platform>

Expand Down
8 changes: 4 additions & 4 deletions scripts/gradle/bbd.gradle
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2022 BlackBerry Limited. All Rights Reserved.
* Copyright (c) 2023 BlackBerry Limited. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand Down Expand Up @@ -40,9 +40,9 @@ allprojects {
}

dependencies {
implementation 'com.blackberry.blackberrydynamics:android_handheld_platform:11.0.1.140'
implementation 'com.blackberry.blackberrydynamics:android_handheld_backup_support:11.0.1.140'
implementation 'com.blackberry.blackberrydynamics:android_webview:11.0.1.140'
implementation 'com.blackberry.blackberrydynamics:android_handheld_platform:11.1.0.62'
implementation 'com.blackberry.blackberrydynamics:android_handheld_backup_support:11.1.0.62'
implementation 'com.blackberry.blackberrydynamics:android_webview:11.1.0.62'

implementation 'androidx.legacy:legacy-support-v4:1.0.0'

Expand Down
2 changes: 1 addition & 1 deletion scripts/gradle/gradle.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cdvBuildToolsVersion=30.0.0
cdvMinSdkVersion=28
cdvMinSdkVersion=29
cdvCompileSdkVersion=android-30
cdvTargetSdkVersion=android-30
21 changes: 9 additions & 12 deletions scripts/hooks/afterCopy.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2022 BlackBerry Limited. All Rights Reserved.
* Copyright (c) 2023 BlackBerry Limited. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Expand All @@ -14,23 +14,20 @@
* limitations under the License.
*/

(function () {
const path = require('path'),
fs = require('fs'),
projectRoot = process.env.INIT_CWD,
iosProjectRoot = path.join(projectRoot, 'ios'),
isWindows = process.platform === 'win32',
{ updateLauncher } = require(
path.join(projectRoot, 'node_modules', 'capacitor-plugin-bbd-base', 'scripts', 'hooks', 'helper')
),
currentPlatformName = process.env.CAPACITOR_PLATFORM_NAME;
import path from 'path';
import fs from 'fs';
import { updateLauncher } from '../node_modules/capacitor-plugin-bbd-base/scripts/hooks/helper.js';

const projectRoot = process.env.INIT_CWD,
iosProjectRoot = path.join(projectRoot, 'ios'),
isWindows = process.platform === 'win32',
currentPlatformName = process.env.CAPACITOR_PLATFORM_NAME;

(function () {
// Configure Launcher for iOS platform
if (fs.existsSync(iosProjectRoot) && currentPlatformName == 'ios') {
if (isWindows) { return; }

updateLauncher();
}

})();

0 comments on commit 3b62ff6

Please sign in to comment.