Category: Docs

  • How to find your Apple Team ID and agent Apple ID

    1. Log in to Apple’s Developer Center
    1. Once you are logged in, click on Account
    1. Then Membership
    1. Under Membership Information, please copy the Team Name and Team ID fields

    We will require the following information when you request for an iOS app transfer:

    1. Team Agent Apple ID (email)
    1. Team ID

    To complete the transfer, email us at support@vendrux.com or follow the instructions provided.

    Please note that once an app transfer has been requested, you will be given by Apple 60 days from the day initiated to accept the request. Contracts that have not been accepted within 60 days will be canceled. App transfers can take up to two business days to complete, depending on an export compliance review.

  • Fill out the data safety section

    Whenever you submit a new app to the Play Store, Google will require you to fill out what they call a “data safety section”.

    The idea is for you to tell users what kind of information your app collects or shares.

    Each platform and app works in a different way, especially since Vendrux relies on your website for all the content and functionality provided in the app. Below you can find a guide with more details about our suggested responses:

    ⚠️ Your answers might be different depending on the functionality provided on your website. Vendrux provides you with a general guide on how to fill this section, but you might want to review each option carefully and make sure your answers are aligned with your app/website functionality.

  • Export a Push Notification Certificate in a p12 file

    1. Go to iOS Development Center

    – Click Log-in and proceed to Account > Certificates, IDs & Profiles.

    – Then, click on App IDs (1.), select your App (2.) and click Edit button.

    2. Scroll down to Push Notifications section, and click Create Certificate button under Production SSL Certificate section. Click Continue when asked to create a CSR file.

    3. Now it is the time to create Certificate Signing Request (CSR) file. In your Spotlight window type in keychain and launch Keychain Access.

    4. Within the Keychain Access drop down menu, select Keychain Access > Certificate Assistant > Request a Certificate from a Certificate Authority.

    5. Enter the following information in the Certificate Information window:

    – In the User Email Address field, enter your email address– In the Common Name field, create name for your private key (eg. Name Surname)– Select the ‘Saved to disk’ option

    Click Continue within Keychain Access to complete the CSR generating process. Save the file generated. Click Done.

    6. Let’s go back to Apple Developer Portal, click on Choose File and select the Certificate Signing Request (CSR) file you have just created. Then, click on Continue and Download the certificate that was generated.

    7. Launch Keychain again.

    – Filter keychains by Login– Filter Category by Certificates– Import your aps_[development/production].cer into your Keychain by dragging and dropping it into login section in keychain.

    8. After importing your certifications into your Keychain you will see an expandable option called ‘Apple Push Services’. Right click on ‘Apple Push Services’ > Export ‘Apple Push Services.

    9. Save the certificate as flle somewhere you can access it.

    Save the certificate as (.p12) flle somewhere you can access it.

    10. If you are submitting your certificate (.p12) file to Vendrux please leave password empty and click on OK.

    11. Enter your admin password to confirm and click on Allow to finalize the export process.

  • Do I need a privacy policy for my app?

    Yes, you do! Your app will collect some user information for its analytics and other mobile features and this implies you must have a privacy policy visible in the App Store or Google Play profile of your app and accessible within the app itself. Your app won’t be published or approved without a valid privacy policy.

    If you don’t have a Privacy Policy yet, you should create one. You can use a lawyer to create a policy with a tool like Iubenda ($25/year) or Termsfeed (variable one-off cost). You should always host the privacy policy page on your website (this is a requirement from Apple and Google).

    Note your app uses the following SDKs and services:

    • Google Firebase
    • OneSignal or Klaviyo (depending on what you are using for push notifications)
    • Google Analytics (only if you have it enabled on your website)
    • Facebook (only if you have tracking enabled for your app)

    Since the app requests some device information to be able to deliver push notifications, if you are using Iubenda you should add the service named “Device permissions for Personal Data access”.

    Vendrux will add a link to your privacy policy page to the app’s settings page, to ensure that your app is compliant with the requirements from Apple and Google, and giving your users easy access to the privacy policy at any time.

  • Disable back button on notifications and universal links

    If you’d like to remove the back button from screens that are opened through notifications or universal links you can use the following parameters in your app advanced configuration:

    "Navigation": {
      "iOS_Back_Button_Bar_Deep_Links": false,
      "Android_Back_Button_Bar_Deep_Links": false
    }

    Make sure that these parameters are added to the existing “Navigation” array of parameters.

  • Disable back button on notifications and deep links

    To disable the back button on notifications and deep links you can use the following parameters in the advanced config, under the “Navigation” array:

     “iOS_Back_Button_Bar_Deep_Links”: true/false
    "Android_Back_Button_Bar_Deep_Links": true/false

  • Detect Mobile App users | vendrux Docs

    Your Vendrux app adds “canvas” to the user agent string when users browse through the app. Simply check if “canvas” is present in the user agent to detect app users.

    App user: User agent contains “canvas”
    Website user: User agent doesn’t contain “canvas”

    Basic Detection

    Check the user agent directly whenever you need to detect app users:

    if (navigator.userAgent.toLowerCase().includes('canvas')) {
        // User is in the mobile app
        console.log('App user detected');
    } else {
        // User is on the website
        console.log('Website user');
    }

    Common Examples

    Hide App Download Banners

    // Don't show app download prompts to users already in the app
    if (navigator.userAgent.toLowerCase().includes('canvas')) {
        document.querySelector('.app-download-banner').style.display = 'none';
    }

    Analytics Tracking

    Track app vs website sessions by setting a user property:

    // Set app_session property based on user agent
    if (navigator.userAgent.toLowerCase().includes('canvas')) {
        gtag('set', { app_session: true });
    } else {
        gtag('set', { app_session: false });
    }

    Custom CSS Styling

    Add different styles for app users by adding a CSS class:

    // Add 'in-app' class to body for app users
    if (navigator.userAgent.toLowerCase().includes('canvas')) {
        document.body.classList.add('in-app');
    }

    Then use CSS to style differently:

    /* Hide elements for app users */
    .in-app .web-only {
        display: none;
    }
    
    /* Show elements only for app users */
    .app-only {
        display: none;
    }
    .in-app .app-only {
        display: block;
    }
    
    /* Adjust styling for app */
    .in-app .header {
        padding-top: 0;
    }

    That’s it! The detection is straightforward and reliable across all devices.

  • Delete OneSignal tags from user profile

    If you would like to remove tags from a user profile in OneSignal you can call the nativeFunctions.onesignalDeleteTags() function.

    When a user opts out of notifications for promotional content, for example, you can call the nativeFunctions.onesignalDeleteTags() function, as follows:

    >
        // Get the user agent and convert it to lowercase for case-insensitive comparison
        var userAgent = navigator.userAgent.toLowerCase();
    
        // Remove a tag directly if the user agent contains 'canvas'
        function removeTag() {
            try {
                // Check if the user agent contains the string "canvas"
                if (userAgent.indexOf('canvas') > -1) {
                    nativeFunctions.onesignalDeleteTags("promotions");
                }
            } catch (ex) {
                console.log(ex.message);
            }
        }
    
    

    Note that you can also delete multiple tags at once, using nativeFunctions.onesignalDeleteTags(“tag1”, “tag2”, “tag3”)

  • Delete app from the App Store

    You can’t delete in app if it was previously available in the store, but you can remove it from the store.

    To remove your app from sale on the store

    1. Open the App Details page for the app
    1. Click Pricing and Availability.
    1. Select Remove from Sale from the Availability section.
    1. Click Save.

    The status changes to Developer Removed From Sale. Within 24 hours, your app won’t be seen in the store.

  • Customize Your App Experience | vendrux Docs

    In this guide, you’ll learn how Vendrux works, what the user agent is, how the app includes a unique identifier in the user agent, and how you can use this to make app-specific customizations. We’ll also explain why making these adjustments directly on your website is the best approach for optimizing the app experience.

    How Vendrux Works

    Vendrux converts your website into a mobile app by loading your site inside a WebView. This allows your app to function like a native mobile app while still using your existing website content. It’s a fast, efficient way to give your users an app experience without the need to build everything from scratch.

    While the website is displayed in the WebView, we can add native mobile features (such as push notifications and the bottom navigation bar) around the WebView to enhance the app experience. However, most changes to the website’s design and functionality should be made on your website itself.

    What Is a WebView?

    A WebView is a component that allows mobile apps to display web content, similar to how a browser works. In the Vendrux app, your website is loaded inside a WebView, allowing users to experience it just like they would in a mobile browser. This enables us to wrap native mobile features around your existing site, giving it the feel of an app.

    While WebViews offer a lot of flexibility, they do have some limitations compared to a full mobile browser. Some advanced browser features or behaviors may not function exactly the same in a WebView. However, for most websites, the experience remains largely seamless.

    What Is a User Agent?

    The user agent is a string of text that a browser or app sends to a website server when loading the site. It provides information about the device, browser, and operating system being used. This allows websites to customize the experience based on the type of device or app accessing it.

    For example, when someone visits your site from a desktop browser, the user agent might look something like this:

    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.61 Safari/537.36

    On mobile, the user agent string might include references to a specific mobile browser or device type.

    How Vendrux Uses the User Agent

    When your website is displayed inside the Vendrux app, the user agent includes a unique identifier to signal that the app is accessing the website. This identifier is the word “canvas,” which you can detect to apply custom styles or scripts specifically for the app.

    For instance, when a user opens your site inside the Vendrux app, the user agent might look like this:

    Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.0 Mobile/15E148 Safari/604.1 Canvas

    The keyword “Canvas” (or similar) is included in the user agent string, which allows you to detect when the site is viewed inside the app. You can then use this information to modify how the website appears or behaves specifically within the app.

    Detecting the App and Applying Customizations

    Using the unique “canvas” string in the user agent, you can easily create conditional logic to apply custom styles or scripts only when the website is being viewed in the app. This allows you to make specific changes for app users without affecting the experience for desktop or mobile web users.

    Here’s how to detect if your website is being accessed in the app and apply customizations:

    Javascript Example:

    if (navigator.userAgent.toLowerCase().includes('canvas')) {    
    	// Your app-specific code goes here
        console.log('App detected, applying custom changes');
    }
    

    PHP Example:

    if (strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'canvas') !== false) {    
    	// Your app-specific code goes here   
        echo 'App detected, applying custom changes';
    }

    You can use these methods to apply styles, hide elements, or modify the behavior of your site when viewed in the app.

    Why Customize Directly on Your Website?

    While it’s possible to inject code into the app through our platform, making changes directly on your website is always the preferred method. Here’s why:

    1. Greater Control: Adjusting your website directly gives you full control over your code. You can easily make changes or updates without needing to involve us or wait for app store submissions.
    2. Faster Load Times: When you apply customizations directly on your site, the changes load with the page content right away, preventing flickering or delay. If you rely on injected code, changes might appear after the content loads, causing a less smooth experience.
    3. One Central Place for Updates: By managing all changes on your website, you only need to adjust your code in one location. This makes it easier to maintain and update your website, ensuring consistency across platforms.

    What’s Next?

    Now that you understand how Vendrux works and how to detect the app using the user agent, you can start applying customizations to tailor the app experience for your users.

    For more detailed guidance on customizing your app and optimizing your website’s performance in the app, be sure to check out our other guides:

    These resources will help you fine-tune the app experience for your users and make the most of your mobile presence.