Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: PHP:llä alustan tunnistus applettia varten

Sivun loppuun

kpzpt [28.06.2011 15:26:35]

#

Hei,

Minulla on Applet jonka on tarkoitus latautua useissa käyttöjärjestelmissä ja mahdollisesti sitten myös näissä "kosketuspöydissä".

Kysymys on kuinka rakentaa php koodi joka käynnistää appletin oikein jokaiselle käyttöjärjestelmälle ja laitteelle ?

$os = "Unknown";
$ua = $_SERVER["HTTP_USER_AGENT"];

if ( strpos ( $ua , "Windows" ) ) $os = "Windows";
if ( strpos ( $ua , "Win" ) ) $os = "Windows";
if ( strpos ( $ua , "Linux" ) ) $os = "Linux";
if ( strpos ( $ua , "Mac" ) ) $os = "Macintosh";
if ( strpos ( $ua , "Macintosh" ) ) $os = "Macintosh";

echo ("<div style=\"position:absolute;top:1%;left:1%;width:98%;height:97%;\"><applet code=\"main.Main\" codebase=\"http://xxxxxxxx.com/AsiakasOhjelma/\" archive=\"AsiakasOhjelma.jar\" width=\"100%\" height=\"100%\"> <param name=\"separate_jvm\" value=\"true\">");
if ( $os == "Linux" )
echo ("<param name=\"java_arguments\" value=\"-Xms32m -Xmx256m -Dsun.java2d.d3d=false -Dsun.java2d.opengl=true -Djnlp.packEnabled=true\">");
if ( $os == "Macintosh" )
echo ("<param name=\"java_arguments\" value=\"-Xms32m -Xmx256m -Dsun.java2d.d3d=false -Dsun.java2d.opengl=true -Djnlp.packEnabled=true\">");
if ( $os == "Windows" )
echo ("<param name=\"java_arguments\" value=\"-Xms32m -Xmx256m -Dsun.java2d.d3d=true -Dsun.java2d.opengl=false -Djnlp.packEnabled=true\">");
if ( $os == "Unknown" )
echo ("<param name=\"java_arguments\" value=\"-Xms32m -Xmx256m -Dsun.java2d.d3d=false -Dsun.java2d.opengl=false -Djnlp.packEnabled=true\">");
echo ("</applet></div>");

Minkä kaikenlaista UserAgent stringiä minun tulee etsiä ja mitkä asetukset tulee laittaa, tässä on varmaankin jo Windows Linux ja Macintosh kunnossa, mutta, entä nämä kosketuspöydät ja muut vempaimet, en sellaisia omista, jotenka en pääse testaamaan, mitä kaikkea härpäkkää sitä löytyy, jolle olisi hyvä asettaa oma käynnistys osio php koodiini, ja mitkä käyttää OpenGL ja mitkä DirectX rajapintoja ?

samip [28.06.2011 15:28:32]

#

Appleteista en tiedä, mutta käytä mielummin switch-lauseketta jos tuollainen pitää tehdä.

kpzpt [28.06.2011 15:31:43]

#

Ok kiitos, osaako joku noita useragentteja ja rajapintoja oikein ?

Metabolix [28.06.2011 19:33:31]

#

Mikä ihmeen kikkare tuo nyt on? Koodisi kannalta ei ole mitään väliä, onko käyttäjällä Linux vai Mac. D3D:n disablointi on turha, koska muualla kuin Windowsissa sitä ei ole edes olemassa. Tuntemattomillekin voi ihan hyvin tyrkyttää OpenGL:ää, käyttävät sitten, jos osaavat.

Eli paljon käytännöllisempi koodi:

<?php
$d3d = false;
if (strpos($_SERVER["HTTP_USER_AGENT"], "Windows") !== false) {
  $d3d = true;
}

if ($d3d) {
  $java2d = "-Dsun.java2d.d3d=true -Dsun.java2d.opengl=false";
} else {
  $java2d = "-Dsun.java2d.opengl=true";
}
echo "<param höpö value='höpö {$java2d} höpö' />";

kpzpt [28.06.2011 19:54:54]

#

Kikkare,

Tuo oli vain esimerkki, ei ihan vielä julkaisuun tuleva, kiitos kuitenkin ..

Linux : OpenGL , JRE 1.6+
Macintosh : OpenGL , JRE 1.5+
Windows : Direct3D , JRE 1.6+ , Java ei täysin tuo OpenGL tukea KAIKISSA Windows koneissa, jotenka tämä on D3D.
Kosketuspöydät ja muut vempaimet vielä erikseen omiinsa.

Kysyin jos joku tuntisi näitä kosketuspöytiä hieman, useragenttein puolelta, ja myös mitä rajapintaa käyttävät, käsittääkseni on myös Windows puolen pöytiä ?

Blaze [28.06.2011 20:25:03]

#

No niissä Android-pohjasissa ei ainakaan toimi appletit vakioselaimella lainkaan. Applen tuntien ei toimi iPadissakaan. Milläs muilla käyttiksillä noita saa?

kpzpt [28.06.2011 22:06:52]

#

Touchpad,

En omista tuollaista vielä, ajattelin varmaankin ensivuoteen mennessä hankkia, olen vain nähnyt nettivideon microsoftin lautapeli pöydästä, ajattelin vain että ne ovat yleisiä, vuoden parin sisään ja että joillakin sellaisia jo olisi, kyseessä oli minun tietojen taitojen mukaan vain yhden riviparin säätäminen käynnistys tiedostoon, jotenka kysyin.

Mutta, että ei toimi siis touchpadeissa appletit, jaha, no tässä taas näkee mikä amatööri sitä on, olen siis katsellut nettivideon microsoftin lautapeli touchpöydästä ja ajattelin kysyä useragentteja joita voi esiintyä harrastamani kaltaisen sivuston kävijöillä, olisin sitten asettanut käyttäjille oikean ohjauksen joko OpenGL taikka DirectX.

Metabolix [28.06.2011 22:19:04]

#

Onko niin mahdottoman vaikeaa sisäistää tätä? DirectX on vain Windowsissa (ja Xboxissa, mutta tämä ei koske sinua). Kaikelle muulle voit antaa OpenGL-version. Jos laite ei tue OpenGL:ää, appletti toimii sitten automaattisesti ilman. Jos tästä jostain syystä aiheutuu jollain laitteella ongelmia, voit lisätä myöhemmin erikoistarkistuksia.

Blaze [28.06.2011 22:48:03]

#

kpzpt kirjoitti:

Touchpad

Sen verran pakko korjata terminologiaa, että vaikka noille kirjan kokosille kosketusnäyttövempeleille ei oo vielä vakiintunu yhtä nimitystä (minä puhuisin tableteista) niin touchpad on yksselitteisesti se läppärien hiirenkorvike-kosketuslevy.

Se Microsoftin kosketusnäyttöpöytä on nimeltään Surface.

kpzpt [28.06.2011 23:43:06]

#

Surface,

Mikä käyttöjärjestelmä näissä Surface laitteissa on, käsittääkseni tämä sitten on ilmeisesti MS tuotteena DirectX laite, täytyy huomenna googlailla josko löytyisi useragent laitteelle ja muutakin tietoa, hienoa ..

The Alchemist [29.06.2011 07:33:30]

#

Aivan turha sinun on mistään surfaceista huolia, kun et ole saanut peleistäsi ainuttakaan nettiin asti. Jospa lähtisit siitä, että tuotteesi tavoittaa ensin sen suuremman 99 %:n puoliskon maailmasta, ja vasta sen jälkeen murehdit noista erikoislaitteista. Toisaalta Metabolix antoi jo sinulle sen ainoan mahdollisen toimivan skriptin, joten asiahan on selvä?

kpzpt [29.06.2011 15:19:47]

#

Sävyä taas,

Nyt on sitä loukkaavaa sävyä taas, sellainen on ihan turhaa ja voi pilata monta hyvää kesäpäivää.

Kuten sanoin, kyseessä oli yhden taikka kahden rivin muuttaminen appletin käynnistys rutiineihin, jotenka kysyin myös näistä harvinaisimmista laitteista, ja tuo minun koodini on copy/pastella kirjoitettu kuten tarkkaavaisimmat varmaankin ymmärsivät, eli joskus kirjoitus nopeus merkitsee enemmän kuin prosessori aika.

skorpioni-cb [14.07.2011 08:44:26]

#

eikö tämä ole mennyt off-topikin puolelle. Ja eikö kaikille voi antaa openGLlää koska se toimii uusissa windows-koneissa


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta