This is an example Android app to demonstrate the hybrid integration of Klarna In-App SDK.
The Klarna In-App SDK allows merchants to natively integrate Klarna’s products into their apps. This means that you can add services like Klarna Payments to your app and let your customers pay with our payment methods.
The Native Integration Demo App of Klarna In-App SDK: Klarna In-App Android Demo App.
Looking for Klarna Checkout Android Demo App? Check out the Klarna Checkout Android Demo App repo instead.
Klarna In-App SDK offers two integration approaches: Native integration and Hybrid integration (showcased in this demo app).
Native integration allows fully native apps to add views with Klarna content to their app. We currently support Klarna Payments, allowing you to add payment views to your checkout and authorizing a session to create an order natively.
Hybrid integration will enhance your customers' experience if your app renders in a web view that presents content from Klarna.
- Open the project and run the
app
configuration.
Our iOS and Android SDKs hold weak references to your web views, don’t override any part of your implementation or modify your web views in any way. Because of this, we ask you to perform some minor integration work to make your users’ experience as pleasant as possible. This consists of four steps:
- Initialization.
- Adding web views to the SDK.
- Notifying the SDK when something occurs in the web view.
- Handling events from the SDK.
These are our Android-specific guides for the In-App SDK. We currently have guides to get you started, to integrate Klarna Payments and to perform a hybrid integration.
Your app should handle specific events that you might receive from the SDK, which allow you to move your web view to a fullscreen presentation in the way that is most suitable for your app. The solution demonstrated in the demo app is just one of the many available solutions that you can use. Read More About Fullscreen Transitions
- Android 4.4 or later.
If you are having any issues running the SDK in the demo app, please create a question on Stack Overflow tagged with klarna-inapp-sdk
. If you think that something is wrong with the demo app itself, please create an issue.
Thank you for reading this and taking time to contribute to Klarna In-App SDK - Android Demo App! Below is a set of guidelines to help you contribute whether you want to report a bug, come with suggestions or modify code.
This section will guide you through submitting a bug report for Klarna In-App SDK - Android Demo App.
Before submitting a bug report, please check that the issue hasn't been reported before. If you find a Closed issue that seem to describe an issue that is similar to what you want to report, open a new issue and link to the original issue in the new one. When you have checked that the issue hasn't been reported before fill out the required template which will help us resolve the issue faster.
Bugs that are submitted are tracked as GitHub issues. To report a bug, create an issue and use the template to provide information about the bug. Explain the problem thoroughly and include any additional information that you think might help the maintainers reproduce the issue. When creating the GitHub issue please make sure that you:
- Use a clear and descriptive title for the issue.
- Describe the exact steps which reproduce the problem with as many details as possible. It's generally better to provide too much than too little information.
- Describe the behavior you observed after following the steps and explain exactly what the problem is with that behavior.
- Explain which behavior you expected instead and why.
- Provide screenshots and/or screen recordings that might help explain the issue you are facing. To screen record a phone connected to Android Studio or an emulator follow the steps here. To screen record on iOS follow the steps described here.
- Include relevant logs in the bug report by putting it in a code block, a file attachment or in a gist and provide a link to that gist.
- Tell how recently you started having the issue. When was the first time you experienced the issue and was it after updating the SDK version? Or has it always been a problem?
- If the problem started happening recently, can you reproduce it in an older version of the SDK? What's the most recent version in which the problem doesn't happen?
- Can you reliably reproduce the issue? If not, explain how often it occurs and under what conditions it normally happens. For example in what environment you are running.
Include details about the device/emulator/simulator you are experiencing the issue on:
- Which version of the SDK are you using?
- Which OS is this a problem in, iOS, Android or both? What version(s)? Also add the appropriate label to the issue.
- Did you experience the issue in simulator/emulator or on real device(s)?
Before contributing please read through the Klarna In-App SDK documentation.
Prefix the branch you are going to work on depending on what you are working on (bug fix or feature). Use the following prefixes when creating a new branch:
- feature/ if the branch contains a new feature, example:
feature/my-shiny-feature
. - bugfix/ if the branch contains a bug fix, example:
bugfix/my-bug-fix
.
When creating a PR include as much information as possible about the type of enhancement, whether if it's a bugfix, new functionality or any other change. There's a template for you to fill out which will make the review process for the maintainers faster. When creating a PR do it against the master
branch. The PR should include:
- A clear and descriptive title.
- Description of the issue if you are fixing a bug together with a link to the relevant issue or background for introducing a new feature.
Copyright 2018 Klarna Bank AB
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.