2013-04-15 43 views
-2

我在標題Android SDK中 - 應用程序不讀的PHP/MySQL

activity_main.xml中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity" > 

    <WebView 
     android:id="@+id/webView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" /> 

</RelativeLayout> 

AndroidManifest.xml中

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.achkars.espaceado" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="17" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.achkars.espaceado.MainActivity" 
      android:label="@string/app_name" 
      android:theme="@style/Theme.FullScreen" 
      android:noHistory="true" 
      android:screenOrientation="portrait" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

MainActivity.java

package com.achkars.espaceado; 

import android.os.Bundle; 
import android.annotation.SuppressLint; 
import android.app.Activity; 
import android.view.Menu; 
import android.webkit.WebChromeClient; 
import android.webkit.WebView; 

public class MainActivity extends Activity { 

    @SuppressLint("SetJavaScriptEnabled") 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     WebView webview = new WebView(this); 
     setContentView(webview); 
     webview.getSettings().setJavaScriptEnabled(true); 
     webview.setWebChromeClient(new WebChromeClient()); 
     // Simplest usage: note that an exception will NOT be thrown 
     // if there is an error loading this page (see below). 
     webview.loadUrl("file:///android_asset/index.html"); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 

} 

和文件新聞。 PHP

<html> 
<head> 
<link rel="stylesheet" type="text/css" href="file:///android_asset/style.css" media="screen"/> 
</head> 
<body> 
<img alt="full screen background image" src="file:///android_asset/back.jpg" id="full-screen-background-image" /> 
<center><img alt="up" src="file:///android_asset/top.png" id="up" /> </center> 
<center><img alt="down" src="file:///android_asset/down.png" id="down"/></center> 
<h2><center> 
Les nouvelles (Blagues) 
</center></h2> 
<ul> 
<a href="file:///android_asset/index.html"><li class="arrow">La page precedente</li></a> 
</ul> 
<ul> 
<?php 
$con = mysql_connect("The Domain","Username","Password"); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("DB Name", $con); 

$result = mysql_query("SELECT * FROM espace"); 

while($row = mysql_fetch_array($result)) 
    { 
echo "<a href=".$row['link'].">","<li class=".$row['arrow'].">"; 
echo $row['news']; 
echo "</li></a>"; 
    }; 
mysql_close($con); 
?> 
</ul> 
</body> 
</html> 

在PC,它正在normaly但電話我得到:

"," ";echo $row['news'}; echo " 
";}; mysql_close($con); ?> 

是否需要任何許可?

感謝您的任何幫助

+1

你是否正在認真解釋Android設備上的'.php'文件? –

回答

1

Android無法在設備本身上運行PHP代碼。 PHP是一種服務器端語言,您必須將所有PHP功能移到網絡服務器上,並通過它訪問它。

請注意,有一個PHP for Android項目,您可以使用它來本地運行代碼,但我不確定端口的完整性或活動性。

+0

所以我應該做一個iframe? –

+0

@AlexandreAchkar不完全是我的意思,但只要PHP代碼位於支持PHP的Web服務器上,並且您正在將其加載到iFrame中,它應該沒問題。 –

+0

好的謝謝:) –

1

一個php頁面是一個腳本,它需要一個PHP解釋器來解析和正確顯示。你不能在你的Android中有這個(而且這不是你真正想要的)。您需要將此腳本存儲在兼容PHP的Web服務器中,並通過手機的瀏覽器通過互聯網查看它(再次,我想這不是您想要的)

0

獲取適用於Android的Web服務器,移動您的PHP腳本到htdocs(或其他)文檔文件夾,並且當調用爲localhost:8080/時,所有內容都將正常運行。我在智能手機和平板電腦上都使用KSWeb服務器,沒有任何問題。

相關問題