2013-10-16 37 views
1

起初我會解釋我有什麼,然後我想要做什麼。我一直在尋找很多,你可以認爲這個問題已經存在,但我認爲這是一個非常具體的案例。如何檢測使用Android瀏覽器或Android本機WebView客戶端

我有一個Web應用程序,使用一個模板系統,使用PHP,jQuery的,JavaScript的,等... 現在我在做什麼正在開發一款移動網絡版本,適用於移動設備的特定模板。它工作正常,但問題出現時,我想包括移動網絡Android原生應用,在WebView內。

我已啓用javascript和一切需要使它工作,以便使用腳本來調用我自己的Android功能。它效果很好!

的問題是,當我從任何瀏覽器訪問的應用程序之外,移動網絡和Android設備檢測裝置,但它說的是,當我打電話功能的Android原生應用程序類似這樣功能沒有定義:

<script>Android.showToast("Welcome");</script> 

所以問題是,我如何檢測我是否使用網絡瀏覽器或本機應用程序? 否則,我該如何避免網絡手機出​​現該錯誤?

Grettings !!和thx爲您提供幫助!

+0

如果'''Android'是你的本地網橋,那麼在使用它之前檢查它是否存在。 – 323go

回答

3

通過PHP您可以檢查試圖訪問您的網頁的user-agent。你可以用其中之一進行測試。

if($_SERVER['HTTP_X_REQUESTED_WITH'] == 'your_android_app_package_name') { 
    //...Inject your javascript code 

}

if(strpos($_SERVER['HTTP_USER_AGENT'], 'your_android_app_package_name/') !== false){ 
    //...Inject your javascript code. 

}

0

這是我使用過的JavaScript環境的依賴組件時,發生在我身上了很多。我通常的做法是用局部對象和空函數覆蓋全局對象。在你的情況下,你可以嘗試在所有其他腳本標籤之前添加如下內容:

window.Android = window.Android || { 
    "showToast": function(){} 
} 
相關問題