2012-11-01 7 views
1

나중에 프로그램에서 확인할 수 있도록 device.platform의 값을 변수에 할당하고 싶습니다. 예를 들어 앱이 BlackBerry에서 실행중인 경우 맞춤 메시지가 표시 될 수 있습니다.phonegap device.platform 값을 변수에 할당하는 방법은 무엇입니까?

필자는 다른 곳에서 발견 된 "요소"예제를 사용하여 제대로 작동하는지 확인했습니다. 하지만 devicePlatform에 "device.platform"값만 할당하면 문제가 발생합니다.

나는 한 시간 동안이 일과 싸워 왔으며, 나는 아주 기본적인 것을 놓치고 있어야합니다. 누군가 내가 잘못하고있는 것을 보여줄 수 있습니까?

감사 롭

<html> 
    <head> 
    <title>PhoneGap</title> 
    <meta name="viewport" content="width=device-width"> 
    <script type="text/javascript" charset="utf-8" src="cordova-1.9.0.js"></script> 
    <script language="JavaScript" type="text/javascript"> 
     // wait for PhoneGap to load 
     document.addEventListener("deviceready", onDeviceReady, false); 
     function onDeviceReady() { 
     var element = document.getElementById('deviceProperties'); 
     element.innerHTML = 'Device Name: '  + device.name  + '<br />' + 
          'Device Cordova: ' + device.cordova + '<br />' + 
          'Device Platform: ' + device.platform + '<br />' + 
          'Device UUID: '  + device.uuid  + '<br />' + 
          'Device Version: ' + device.version + '<br />'; 
     // 
    } 
    </script>  

    </head> 
    <body> 
    <h1>Hello PhoneGap v1.9.0</h1> 

    <script> 
     var devicePlatform = device.platform; 
     document.write("Platform: "+devicePlatform+"<br>");  
    </script> 
    <br> 
    <p id="deviceProperties">Loading device properties...</p> 

    </body> 
</html> 

답변

2

에 한번이 문제를 해결해야

기능 onDeviceReady()에

var devicePlatform = device.platform; 
document.write("Platform: "+devicePlatform+"<br>"); 

퍼팅.

또한 '플랫폼'과 같이 전역 적으로 범위가 지정된 변수를 정의한 다음 device.platform을 onDeviceReady() 함수의 해당 변수에 할당 할 수 있습니다.

예 :

var platform = null; 
document.addEventListener("deviceready", onDeviceReady, false); 
function onDeviceReady() { 
    platform = device.platform; 
    alert(platform); 
} 

UPDATE :

나는 이것이 당신이 device.platform를 사용

<html> 
    <head> 
    <title>PhoneGap</title> 
    <meta name="viewport" content="width=device-width"> 
    <script type="text/javascript" charset="utf-8" src="cordova-1.9.0.js"></script> 
    <script language="JavaScript" type="text/javascript"> 
     // wait for PhoneGap to load 
     document.addEventListener("deviceready", onDeviceReady, false); 
     function onDeviceReady() { 
     var element = document.getElementById('platformarea'); 
     element.innerHTML = device.platform; 
     // 
    } 
    </script>  

    </head> 
    <body> 
    <h1>Hello PhoneGap v1.9.0</h1> 

    <p id="platformarea"></p> 

    </body> 
</html> 
+0

거의 효과가 있습니다. document.write 및 alert는 onDeviceReady 함수에있을 때 말한대로 작동합니다. 그러나 나중에 프로그램의 다른 곳에서 "플랫폼"을 사용하려고하면 device.platform 값 대신 "null"의 초기 값을 반환합니다. 감사합니다 –

+0

onDeviceReady() 함수가 실행 된 후에 만 ​​'플랫폼'을 표시 할 수 있습니다. '플랫폼'을 사용하려는 위치에 대한 코드를 추가 할 수 있습니까? 감사합니다 –

+0

에서 이것을 사용하면 초기 값 ("null")이 표시됩니다. 마치 "플랫폼"이 전역 변수로 취급되지 않는 것과 거의 같습니다.

2

Insted 무엇을 찾고에 가까운 생각, 당신은 cordova.platformId을 사용할 수 있습니다. 도움이 될 것이라고 확신합니다.

+0

위의 허용 된 대답은 최신 버전의 Phonegap에서 작동하지 않는 것으로 나타나지만, 그렇지 않습니다. – Fmstrat

+0

코드바에서 일하기 4.3.0 –

+0

cordova.platformId에 값을 지정해야한다면 어떻게 할 수 있습니까? cordova.platformId의 모의 객체를 만드는 것입니다. cordova.platformId = "android"를 할당하려고했으나 작동하지 않습니다. – Agnosco

관련 문제