kandi background
Explore Kits

OneSignal-Unity-SDK | free push notification service for mobile apps | Notification library

 by   OneSignal C# Version: 3.0.1 License: Non-SPDX

 by   OneSignal C# Version: 3.0.1 License: Non-SPDX

Download this library from

kandi X-RAY | OneSignal-Unity-SDK Summary

OneSignal-Unity-SDK is a C# library typically used in Messaging, Notification, Unity applications. OneSignal-Unity-SDK has no bugs, it has no vulnerabilities and it has low support. However OneSignal-Unity-SDK has a Non-SPDX License. You can download it from GitHub.
A free email, sms, push notification and in app messaging solution for mobile applications built through Unity.
Support
Support
Quality
Quality
Security
Security
License
License
Reuse
Reuse

kandi-support Support

  • OneSignal-Unity-SDK has a low active ecosystem.
  • It has 187 star(s) with 50 fork(s). There are 37 watchers for this library.
  • There were 7 major release(s) in the last 12 months.
  • There are 39 open issues and 274 have been closed. On average issues are closed in 52 days. There are 6 open pull requests and 0 closed requests.
  • It has a neutral sentiment in the developer community.
  • The latest version of OneSignal-Unity-SDK is 3.0.1
OneSignal-Unity-SDK Support
Best in #Notification
Average in #Notification
OneSignal-Unity-SDK Support
Best in #Notification
Average in #Notification

quality kandi Quality

  • OneSignal-Unity-SDK has 0 bugs and 0 code smells.
OneSignal-Unity-SDK Quality
Best in #Notification
Average in #Notification
OneSignal-Unity-SDK Quality
Best in #Notification
Average in #Notification

securitySecurity

  • OneSignal-Unity-SDK has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
  • OneSignal-Unity-SDK code analysis shows 0 unresolved vulnerabilities.
  • There are 0 security hotspots that need review.
OneSignal-Unity-SDK Security
Best in #Notification
Average in #Notification
OneSignal-Unity-SDK Security
Best in #Notification
Average in #Notification

license License

  • OneSignal-Unity-SDK has a Non-SPDX License.
  • Non-SPDX licenses can be open source with a non SPDX compliant license, or non open source licenses, and you need to review them closely before use.
OneSignal-Unity-SDK License
Best in #Notification
Average in #Notification
OneSignal-Unity-SDK License
Best in #Notification
Average in #Notification

buildReuse

  • OneSignal-Unity-SDK releases are available to install and integrate.
  • Installation instructions, examples and code snippets are available.
  • OneSignal-Unity-SDK saves you 24 person hours of effort in developing the same functionality from scratch.
  • It has 117 lines of code, 9 functions and 68 files.
  • It has low code complexity. Code complexity directly impacts maintainability of the code.
OneSignal-Unity-SDK Reuse
Best in #Notification
Average in #Notification
OneSignal-Unity-SDK Reuse
Best in #Notification
Average in #Notification
Top functions reviewed by kandi - BETA

kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample Here

Get all kandi verified functions for this library.

Get all kandi verified functions for this library.

OneSignal-Unity-SDK Key Features

Push Notifications (mobile & web)

In App Messages

SMS

Email

Requirements

Push Notification Credentials

Installation Unity Asset Store Unity Package Manager

Platform Configuration iOS Android

Usage Initialization

Community Discussions

Trending Discussions on Notification
  • Why do Switch and ListView controls in MAUI not update with 2-way binding?
  • The unauthenticated git protocol on port 9418 is no longer supported
  • Attempting to register a user on my devise app causes undefined method `user_url' for #<Devise::RegistrationsController:0x0000000000d9d0>
  • How to install the Bumblebee 2021.1.1 Android Studio Patch?
  • What is the correct way to install Android Studio Bumblebee 2021.1.1 Patch 1
  • Error: Requiring module "node_modules\react-native-reanimated\src\Animated.js",
  • flutter permission Handler grant not showing on iOS
  • Vue 3: Module '"../../node_modules/vue/dist/vue"' has no exported member
  • clarity.js by Microsoft slowing overall page loads
  • expo-barcode-scanner only works once with react-native version 0.64.2 and expo 43.0.0
Trending Discussions on Notification

QUESTION

Why do Switch and ListView controls in MAUI not update with 2-way binding?

Asked 2022-Apr-11 at 09:33

This question is about two MAUI controls (Switch and ListView) - I'm asking about them both in the same question as I'm expecting the root cause of the problem to be the same for both controls. It's entirely possible that they're different problems that just share some common symptoms though. (CollectionView has similar issues, but other confounding factors that make it trickier to demonstrate.)

I'm using 2-way data binding in my MAUI app: changes to the data can either come directly from the user, or from a background polling task that checks whether the canonical data has been changed elsewhere. The problem I'm facing is that changes to the view model are not visually propagated to the Switch.IsToggled and ListView.SelectedItem properties, even though the controls do raise events showing that they've "noticed" the property changes. Other controls (e.g. Label and Checkbox) are visually updated, indicating that the view model notification is working fine and the UI itself is generally healthy.

Build environment: Visual Studio 2022 17.2.0 preview 2.1
App environment: Android, either emulator "Pixel 5 - API 30" or a real Pixel 6

The sample code is all below, but the fundamental question is whether this a bug somewhere in my code (do I need to "tell" the controls to update themselves for some reason?) or possibly a bug in MAUI (in which case I should presumably report it)?

Sample code

The sample code below can be added directly a "File new project" MAUI app (with a name of "MauiPlayground" to use the same namespaces), or it's all available from my demo code repo. Each example is independent of the other - you can try just one. (Then update App.cs to set MainPage to the right example.)

Both examples have a very simple situation: a control with two-way binding to a view-model, and a button that updates the view-model property (to simulate "the data has been modified elsewhere" in the real app). In both cases, the control remains unchanged visually.

Note that I've specified {Binding ..., Mode=TwoWay} in both cases, even though that's the default for those properties, just to be super-clear that that isn't the problem.

The ViewModelBase code is shared by both examples, and is simply a convenient way of raising INotifyPropertyChanged.PropertyChanged without any extra dependencies:

ViewModelBase.cs:

using System.ComponentModel;
using System.Runtime.CompilerServices;

namespace MauiPlayground;

public class ViewModelBase : INotifyPropertyChanged
{
    public event PropertyChangedEventHandler PropertyChanged;

    public bool SetProperty<T>(ref T field, T value, [CallerMemberName] string name = null)
    {
        if (EqualityComparer<T>.Default.Equals(field, value))
        {
            return false;
        }
        field = value;
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
        return true;
    }
}
Switch sample code

SwitchDemo.xaml

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MauiPlayground.SwitchDemo">
    <StackLayout>
        <Label Text="Switch binding demo" />
        <HorizontalStackLayout>
            <Switch x:Name="switchControl"
                    IsToggled="{Binding Toggled, Mode=TwoWay}"
                    Toggled="Toggled" />
            <CheckBox IsChecked="{Binding Toggled, Mode=TwoWay}" />
            <Label Text="{Binding Toggled}" />
        </HorizontalStackLayout>

        <Button Text="Toggle" Clicked="Toggle" />
        <Label x:Name="manualLabel1" Text="Value set in button click handler" />
        <Label x:Name="manualLabel2" Text="Value set in toggled handler" />
    </StackLayout>
</ContentPage>

SwitchDemo.cs

namespace MauiPlayground;

public partial class SwitchDemo : ContentPage
{
    public SwitchDemo()
    {
        InitializeComponent();
        BindingContext = new ViewModel();
    }

    private void Toggle(object sender, EventArgs e)
    {
        var vm = (ViewModel)BindingContext;
        vm.Toggled = !vm.Toggled;
        manualLabel1.Text = $"Set in click handler: {switchControl.IsToggled}";
    }

    private void Toggled(object sender, ToggledEventArgs e) =>
        manualLabel2.Text = $"Set in toggled handler: {switchControl.IsToggled}";

    private class ViewModel : ViewModelBase
    {
        private bool toggled;
        public bool Toggled
        {
            get => toggled;
            set => SetProperty(ref toggled, value);
        }
    }
}

Screenshot of the emulator after clicking on the "Toggle" button, which updates the view-model:

Demonstration of Switch issue

Notes:

  • The checkbox (bound to the same VM property) has updated
  • The label next to the checkbox (bound to the same VM property) has updated
  • The label below the button indicates that switch.IsToggled is true
  • The label below that indicates that the Switch.Toggled event has been raised
  • The Switch itself has not changed visible state

Clicking on the Switch control directly does visually toggle it.

ListView sample code

ListViewDemo.xaml

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MauiPlayground.ListViewDemo">
    <StackLayout>
        <Label Text="ListView binding demo" />
        <ListView x:Name="listView" ItemsSource="{Binding Items}"
                  SelectedItem="{Binding SelectedItem, Mode=TwoWay}"
                  VerticalOptions="Start"
                  ItemSelected="ItemSelected"/>
        <Label Text="{Binding SelectedItem}" />
        <Button Text="Toggle" Clicked="Toggle" />
        <Label x:Name="manualLabel1" Text="Text set in button click handler" />
        <Label x:Name="manualLabel2" Text="Text set in item selected handler" />
    </StackLayout>
</ContentPage>

ListViewDemo.cs

namespace MauiPlayground;

public partial class ListViewDemo : ContentPage
{
    public ListViewDemo()
    {
        InitializeComponent();
        BindingContext = new ViewModel();
    }

    private void Toggle(object sender, EventArgs e)
    {
        var vm = (ViewModel)BindingContext;
        vm.SelectedItem = vm.SelectedItem == "First" ? "Second" : "First";
        manualLabel1.Text = $"Set in click handler: {listView.SelectedItem}";
    }

    private void ItemSelected(object sender, EventArgs e) =>
        manualLabel2.Text = $"Set in item selected handler: {listView.SelectedItem}";

    private class ViewModel : ViewModelBase
    {
        public List<string> Items { get; } = new List<string> { "First", "Second" };

        private string selectedItem = "First";
        public string SelectedItem
        {
            get => selectedItem;
            set => SetProperty(ref selectedItem, value);
        }
    }
}

Screenshot of the emulator after clicking on the "Toggle" button, which updates the view-model:

Demonstration of ListView issue

Notes:

  • The label below the list view (bound to the same VM property) has updated
  • The label below the button indicates that listView.SelectedItem has the new value
  • The label below that indicates that the ListView.ItemSelected event has been raised
  • The ListView itself appears to have no selected item

Interestingly, the list view does actually change appearance: before clicking on the button, the first item is visually selected (in orange). Selecting an item from the list manually updates all the properties, but we don't see the selected item in orange.

ANSWER

Answered 2022-Apr-09 at 18:07

These both may be bugs with the currently released version of MAUI.

This bug was recently posted and there is already a fix for the Switch to address this issue.

Source https://stackoverflow.com/questions/71810199

Community Discussions, Code Snippets contain sources that include Stack Exchange Network

Vulnerabilities

No vulnerabilities reported

Install OneSignal-Unity-SDK

There are two methods of installation available for the OneSignal Unity SDK:. Upgrading from 2.13.4 or older It is recommended to use the Asset Store path for installation if you are upgrading from a version of the OneSignal Unity SDK 2.13.4 or older.
Add the OneSignal Unity SDK as an available asset to your account by clicking Add to My Assets from our listing on the Unity Asset Store.
Find the package waiting for you to download by clicking Open in Unity from that same page. This will open the Unity Editor and its Package Manager window.
On the SDK's listing in the Editor click the Download button. When it finishes click Import.
A prompt to import all of the files of the OneSignal Unity SDK will appear. Click Import to continue and compile the scripts into your project.
Navigate to Window > OneSignal (or follow the popup if upgrading) in the Unity Editor which will bring up a window with some final steps which need to be completed in order to finalize the installation. The most important of these steps is Import OneSignal packages. Depending on your project configuration and if you are upgrading from a previous version, some of these steps may already be marked as "completed"
After importing the packages Unity will notify you that a new registry has been added and the OneSignal SDK Setup window will have refreshed with a few additional steps. Following these will finalize your installation of the OneSignal Unity SDK.
From within the Unity Editor navigate to Edit > Project Settings and then to the Package Manager settings tab.
Create a New Scoped Registry by entering Name npmjs URL https://registry.npmjs.org Scope(s) com.onesignal and click Save.
Open the Window > Package Manager and switch to My Registries via the Packages: dropdown menu. You will see all of the OneSignal Unity SDK packages available on which you can then click Install for the platforms you would like to include. Dependencies will be added automatically.
Once the packages have finished importing you will find a new menu under Window > OneSignal. Open it and you will find some final steps which need to be completed in order to finalize the installation. Depending on your project configuration and if you are upgrading from a previous version, some of these steps may already be marked as "completed"

Support

Please visit this repository's Github issue tracker for feature requests and bug reports related specifically to the SDK. For account issues and support please contact OneSignal support from the OneSignal dashboard.

DOWNLOAD this Library from

Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from
over 430 million Knowledge Items
Find more libraries
Reuse Solution Kits and Libraries Curated by Popular Use Cases
Explore Kits

Save this library and start creating your kit

Explore Related Topics

Share this Page

share link
Reuse Pre-built Kits with OneSignal-Unity-SDK
Consider Popular Notification Libraries
Try Top Libraries by OneSignal
Compare Notification Libraries with Highest Support
Compare Notification Libraries with Highest Quality
Compare Notification Libraries with Highest Security
Compare Notification Libraries with Permissive License
Compare Notification Libraries with Highest Reuse
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from
over 430 million Knowledge Items
Find more libraries
Reuse Solution Kits and Libraries Curated by Popular Use Cases
Explore Kits

Save this library and start creating your kit

  • © 2022 Open Weaver Inc.