Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Why use BBD's inAppBrowser, and not the original Cordova inAppBrowser #23

Open
cnrudd opened this issue May 11, 2022 · 6 comments
Open

Comments

@cnrudd
Copy link

cnrudd commented May 11, 2022

It would be very helpful to BBD app developers if the BBD inAppBrowser plugin's readme file had a paragraph or two that explained what was changed when porting over the Cordova version, so that a developer doesn't have to diff all of the files in the plugins to figure it out.

The original Cordova version of the inAppBrowser plugin works in a BBD app.
Why is the BBD version a better choice in a BBD app?
The readme notes "...enables you to securely load...".
What is insecure about the Cordova version?
What is more secure about the BBD version?

Thank you!

@MSohm
Copy link
Contributor

MSohm commented May 11, 2022

The BlackBerry Dynamics inAppBrowser makes use of BlackBerry Dynamics secure connectivity to allow an app to connect to servers within an enterprise's corporate network. You can read more about that in the Architecture Overview section here: https://developers.blackberry.com/us/en/resources/get-started/blackberry-dynamics-getting-started?platform=android#step-1

@cnrudd
Copy link
Author

cnrudd commented May 11, 2022

@MSohm Thank you.

I am finding that the Cordova version of the inAppBrowser plugin, when used in a Cordova app that uses the BBD Base plugin, is also able to load pages served from the enterprise corporate network - which are not publicly available via the Chrome or Safari app.

I guess the purpose of the BBD inAppBrowser plugin is not to just "allow access to enterprise" web pages, since the plain Cordova version already does that (when used in an app built with the BBD Base plugin).

I did end up diffing all the files.
In the ios section, the only diff I see is the addition of the "server trust section" to the bottom of CDVWKInAppBrowser.m
Would it be possible to explain what this section adds?

The Architecture Overview section here is pretty broad. It mentions "Secure connectivity to enterprise services" but doesn't explain what that is.

@MSohm
Copy link
Contributor

MSohm commented May 11, 2022

On iOS, BlackBerry Dynamics is able to capture and route most network connectivity automatically. This isn't the case on Android, a regular Android WebView will not be able to access resources on the enterprise network without using this inAppBrowser.

I believe that section for iOS is for making use of certificates deployed to the app from BlackBerry UEM.

@cnrudd
Copy link
Author

cnrudd commented May 11, 2022

Ok, thank you. We are not deploying or testing on Android yet, so did not experience that the Cordova inAppBrowser would not load enterprise only pages on Android. Thanks for explaining that.

Thanks for explaining the iOS server trust section, too!

@thomeijken
Copy link

Just wanted to follow up on this topic. Nowadays there are better alternatives compared to cordova's in-appbrowser. Apple may even decline apps that use the in-app-browser from publication in the app store. The preferred way for iOS is using the Safari view controller, see: https://developer.apple.com/documentation/safariservices/sfsafariviewcontroller. For Android, the preferred way is Chrome custom tabs. It's basically an in app browser provided by the OS. So your not leaving the app, its just an extra component you can use from within your app.
Here is the plugin we use for this:
https://github.com/EddyVerbruggen/cordova-plugin-safariviewcontroller

My question to the BBD developers: can we access web pages within the enterprise's corporate network through Safari view controller / Chrome custom tabs while the BBD SDK is included within the app?

@MSohm
Copy link
Contributor

MSohm commented Nov 16, 2022

Chrome Custom Tabs do not use BlackBerry Dynamics connectivity, so they cannot be used to access web pages within the enterprise's corporate network.

In the native BlackBerry Dynamics SDK for iOS, SafariViewController does use BlackBerry Dynamics networking. SafariViewController isn't used by the BlackBerry Dynamics SDK for Cordova, although it can be used via third party libraries. The behaviour of how this is handled with the third party library would need to be tested and verified on a library by library basis.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants