2015-12-30 54 views
0

我試圖通過我的android手機上的應用程序登錄到我的node.js服務器。這個程序在我運行的任何地方都能正常工作,直到我用phonegap對它進行編譯並安裝在我的android手機上進行測試。它顯示「連接到服務器...」,就是這樣。雖然,當我將IP地址寫入我的android手機的瀏覽器時,它連接正常。有什麼我需要做的這個可用?如果不是,我該怎麼做?Phonegap Cordova - 試圖連接到公共IP服務器

<html> 
<head> 
<script type="text/javascript"> 
function load() 
{ 
    window.location.href = "http://192.168.1.11:8080"; 

} 
</script> 
</head> 

<body onload="load()"> 
<h1>Connecting to Server...</h1> 
</body> 
</html> 

回答

1

你需要一個正確的CSP,並可能在你的config.xml文件的訪問來源的條目(取決於科爾多瓦版本,不會傷及到兼得)。

但是,您正在嘗試做的事情在科爾多瓦環境中不起作用。簡短的答案是一個科爾多瓦應用程序是一個自包含的Web應用程序,並試圖通過window.location.href重定向/更改正文會帶你離開不被允許的應用程序。 (這不是100%正是如此,但這是一個更長的答案)。

火起來外部網站的內容,您將需要添加應用內瀏覽器插件,打開您的網址在: https://github.com/apache/cordova-plugin-inappbrowser

0

您是否啓用了訪問遠程服務器的權限?如果沒有,那麼本地瀏覽器安全策略可能會阻止它。

檢查您的HTML中是否包含Content-Security-Policy元標記,並添加了遠程域。

<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: http://192.168.1.11:8080 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *"> 
+0

對不起我是新來科爾多瓦,我將如何實現這一目標? – JimmyBDB

+0

添加可能的元建議 - 這對我很有用(顯然我使用了不同的網址:)) – DaveEP

+0

我把標籤放在html頭部並重新編譯。沒有什麼區別:( – JimmyBDB