NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
David Moškoř:27.5.2017 15:27

Dobry den, delam aplikaci pro android. Chtěl bych udelat, aby pokazde kdyz nekdo sdílí aplikaci dostane 100 herních korun. Jenomze problem je v tom ze staci aby nekdo klikl na tlačítko sdílet a potom zavřel sdílecí okno a stejně dostane 100 korun. Neslo by nějak ošetřit aby hráč dostal 100 korun az pote co aplikaci sdílí a pokud sdileci okno zavře nedostane nic?

Odpovědět
27.5.2017 15:27
Život je příliš krátký na to, abyste vymýšleli smysluplné názvy proměnných...
Avatar
Honza Rada
Člen
Avatar
Honza Rada:27.5.2017 17:09

Dej to přidání až za ověření jestli to zdílel

Nahoru Odpovědět
27.5.2017 17:09
#c#
Avatar
Zdeněk Kundrát:27.5.2017 17:17

Nevím, jak je tvá aplikace dělaná, ale pokud máš to sdílecí tlačítko jako prvek .NET frameworku, tak by se tam dal dát nějaký event navíc. Také by se dalo udělat to v HTML a tlačítkem člověka nejprve poslat na nějakou svou ASP stránku, která by do DB zapsala, že se to opravdu nasdílelo. Nicméně si myslím, že i tyto metody se dají obejít, a tak mě napadá už jen jediná věc a to, že by si appka hlídala, zda už byl odeslán požadavek na nějaký API server dané sociální sítě.

Když si ale vezmu, že když si chci na FB něco sdílet, tak mi nejdříve vyskočí okno, do které můžu přidat dodatečnou zprávu, tak najít nějaké 100% řešení může být docela těžké.

Pokud ti to pomůže, našel jsem něco tady: Stack Overflow

Nahoru Odpovědět
27.5.2017 17:17
Když ti něco nefunguje, zkus nejdříve použít internet.
Avatar
Honza Rada
Člen
Avatar
Honza Rada:27.5.2017 17:26

OPRAVA sdílel

Nahoru Odpovědět
27.5.2017 17:26
#c#
Avatar
Odpovídá na Zdeněk Kundrát
David Moškoř:27.5.2017 17:49

Asi jsem to špatně popsal: Nepotřebuji si přímo ověřit jestli to vážně je odesláno např. na facebooku, nebo na messangeru, ale problém je v tom, že pokud je kliknuto na tlačítko sdílej tak vyskočí takové "okno", kde si mám vybrat v jaké aplikaci to chci sdílet, jenomže za tím oknem se objeví alertdialog, že děkuji za sdílení a za odměnu se dostává 100 korun. Ale každý by si mohl všimnout, že v pozadí už vyskočil alertdialog ve kterém je napsáno získáváte 100 korun a tak by ho to odradilo sdílet aplikaci a okno by zavřel a jen by si vybral těch 100 korun. Proto bych potřeboval, aby okno vyskočilo až poté co si uživatel vybral aplikaci ve které to chce sdílet. Kód:

Intent share = new Intent(Intent.ActionSend);
share.SetType("text/plain");
share.PutExtra(Intent.ExtraSubject, "Stáhni si Clicker!");
share.PutExtra(Intent.ExtraText, "Stáhni si hru Clicker! Je zdarma a zabaví tě když se nudíš. Odkaz ke ztažení zde:");
share.PutExtra(Intent.ExtraTitle, "Stáhni si Clicker!");
StartActivity(Intent.CreateChooser(share, "Sdílej a získej 100 korun zdarma!"));
AlertDialog.Builder dialog = new AlertDialog.Builder(this, AlertDialog.ThemeHoloLight);
dialog.SetCancelable(false)
      .SetTitle("Děkuji")
      .SetMessage("Děkuji, že jste sdíleli tuto aplikaci, za odměnu dostáváte 100 korun.")
      .SetNeutralButton("OK", delegate
      {
          ZapisPenize(penize + 100, doubleClick, tripleClick, slowTime);
      });
dialog.Show();

Pro orientaci ještě pošlu obrázek

Nahoru Odpovědět
27.5.2017 17:49
Život je příliš krátký na to, abyste vymýšleli smysluplné názvy proměnných...
Avatar
Odpovídá na David Moškoř
Zdeněk Kundrát:27.5.2017 19:40

Tak to dialogové okno nech otevřít až po tom, co na to tlačítko klikneš.

Nahoru Odpovědět
27.5.2017 19:40
Když ti něco nefunguje, zkus nejdříve použít internet.
Avatar
Odpovídá na Zdeněk Kundrát
David Moškoř:28.5.2017 10:29

Však tak to mám. Na Actionbaru mam umistenou ikonku sdileni a kdyz se na ni klikne tak se otevře okno ve kterem se ma vybrat aplikace na sdílení a v pozadi se otevře alertdialog. A to právě že nechci.

Nahoru Odpovědět
28.5.2017 10:29
Život je příliš krátký na to, abyste vymýšleli smysluplné názvy proměnných...
Avatar
Odpovídá na David Moškoř
Michal Štěpánek:28.5.2017 11:52

Ten alert na pozadí se musí otevřít až po dokončení akce, ne při zobrazení výběru.

Nahoru Odpovědět
28.5.2017 11:52
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na Michal Štěpánek
David Moškoř:28.5.2017 13:19

Ja si to taky myslel ale otevira se mi v pozadi nekdy dokonce drive než vyjede to okno na vyber aplikace pro sdílení.

Nahoru Odpovědět
28.5.2017 13:19
Život je příliš krátký na to, abyste vymýšleli smysluplné názvy proměnných...
Avatar
Odpovídá na David Moškoř
Michal Štěpánek:28.5.2017 16:29

Asi je ten alert navázán na špatnou událost

Nahoru Odpovědět
28.5.2017 16:29
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na Michal Štěpánek
David Moškoř:28.5.2017 19:10

Pokud se klikne na tlacitko sdilet v actionbaru spusti se kod uvedeny výše... nevim proc ale nepracuje to tak jak ma. Neexistuje zpusob jak overit jestli uzivatel uz vybral aplikaci pro sdileni?

Nahoru Odpovědět
28.5.2017 19:10
Život je příliš krátký na to, abyste vymýšleli smysluplné názvy proměnných...
Avatar
Odpovídá na David Moškoř
Michal Štěpánek:28.5.2017 19:13

Ale ono to pracuje tak, jak má. Jen ten alert dej až po výběru appky

Nahoru Odpovědět
28.5.2017 19:13
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na Michal Štěpánek
David Moškoř:28.5.2017 19:19

Však tak to mám. Alert se má zobrazit az pote co vyskočí vybraní aplikace, ale bohužel alert z nějakého duvodu vyskočí v pozadí nebo nekdy dokonce az dříve. A jestli jste to myslel tak ze alert vyskoci az pote co se vybere přímo nějaká aplikace pro sdílení, tak to nevím jak se dělá proto jsem napsal zde do fóra.

Editováno 28.5.2017 19:20
Nahoru Odpovědět
28.5.2017 19:19
Život je příliš krátký na to, abyste vymýšleli smysluplné názvy proměnných...
Avatar
Odpovídá na David Moškoř
Michal Štěpánek:28.5.2017 19:22

Ten alert dej až do toho okna s těmi aplikacemi a navaž ho na výběr té aplikace.

Nahoru Odpovědět
28.5.2017 19:22
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Odpovídá na Michal Štěpánek
David Moškoř:28.5.2017 19:33

Mohl bys mi prosim poslat kod jak to udělat? Nejsem si jisty jak na to.
Okno s aplikacemi volam takto:

StartActivity(Intent.CreateChooser(share, "Sdílej a získej 100 korun zdarma!"));

A typ aplikaci zadavam takto:

share.SetType("text/plain");
Editováno 28.5.2017 19:34
Nahoru Odpovědět
28.5.2017 19:33
Život je příliš krátký na to, abyste vymýšleli smysluplné názvy proměnných...
Avatar
Odpovídá na David Moškoř
Michal Štěpánek:28.5.2017 21:38

Já na android neumím, jen dedukuji podle toho tvého kódu. Máš v té ukázce na konci

dialog.Show();

Tak ten alert dej až na událost uzavření toho dialogu, resp. výběr appky v tom dialogu...

Nahoru Odpovědět
28.5.2017 21:38
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Petr Šťastný
Tvůrce
Avatar
Odpovídá na David Moškoř
Petr Šťastný:28.5.2017 21:52

Nemuzes se nejak ptat te sve aplikace, jestli neni jeji okno necim prekryte? Tohle by se mohlo brat jako prekryti, v tom pripade bys mohl zpravu zobrazit, az kdyz tvoje aplikace uz neni prekryta.

// Samozrejme jestli existuje event po zavreni okna sdileni, asi by bylo lepsi pouzit ten, ale ted to na me pusobi dojmem, ze prave nevis, jak se ten event jmenuje (a jestli vubec je)

Editováno 28.5.2017 21:54
 
Nahoru Odpovědět
28.5.2017 21:52
Avatar
Odpovídá na Petr Šťastný
David Moškoř:28.5.2017 23:14

To je dobry napad ale opet by nekdo mohl zavrit sdileci okno a dostal by odmenu tak i tak. Takze nejlepsi zpusob podle mne bude overit si jestli se jiz kliklo na nejakou aplikaci ve ktere se to bude sdilet, ale to nevim jak se dela a jestli je to vubec mozne.

Nahoru Odpovědět
28.5.2017 23:14
Život je příliš krátký na to, abyste vymýšleli smysluplné názvy proměnných...
Avatar
Odpovídá na David Moškoř
Michal Štěpánek:29.5.2017 10:19

Co se stane (nebo co se má stát), když uživatel klikne na nějakou "appku" a co se stane, když to jen zavře?

Nahoru Odpovědět
29.5.2017 10:19
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
jakubho
Člen
Avatar
jakubho:29.5.2017 13:22

Tohle asi neošetříš. Pamatuji si třeba hru, kde jsem mohl sdílet jeden "článek" který v té hře byl na facebook a za sdílení jste dostali bonus. Bohužel to fungovalo i tak, pokud jsi příspěvek sdílel a nastavil viditelnost "jen já". Takže tohle asi půjde vždycky obejít... :/

Nahoru Odpovědět
29.5.2017 13:22
Chyba-Jediná jistota v životě programátora.
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na David Moškoř
Petr Nymsa:29.5.2017 15:27

S Androidem nedělám, ale po rychlém googlení - https://stackoverflow.com/a/23494967

Nahoru Odpovědět
29.5.2017 15:27
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na Petr Nymsa
David Moškoř:29.5.2017 16:52

Dekuji tohle se mi muze hodit, ale je to v jave a ne v c# (ale ty dva jazyky jsou naštěstí celkem podobné). Ale s tim uz si nejak pokusim poradit.

Nahoru Odpovědět
29.5.2017 16:52
Život je příliš krátký na to, abyste vymýšleli smysluplné názvy proměnných...
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na David Moškoř
Petr Nymsa:29.5.2017 23:16

Popravde jsem si nejak nevsiml ze to pises v C#. To delas skrz Xamarin?

Nahoru Odpovědět
29.5.2017 23:16
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na Petr Nymsa
David Moškoř:30.5.2017 17:20

To delas skrz Xamarin?

Ano

S Androidem nedělám, ale po rychlém googlení - https://stackoverflow.com/a/23494967

Funguje to tak jak ma ale v alertdiapogu nejsou ikony aplikaci a nevypada to tak dobre jako to sdileci okno, ale pokud nepujde nic jineho tak to tak asi udělám.
Chvili jsem googlil a nakonec jsem zjistil ze zjistit jestli na neco uzivatel klikl v okne pro vyber aplikace nejde, takze pokud to nevymyslim jinak budu muset ten zpusob pouzit.

Nahoru Odpovědět
30.5.2017 17:20
Život je příliš krátký na to, abyste vymýšleli smysluplné názvy proměnných...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 24 zpráv z 24.