2016-05-11 89 views
0

我有一個webview,並且在其中一個頁面上有一個顯示當前版本應用程序版本的「關於應用程序」頁面。不過,我擔心如果我在將來某個時候必須更改應用程序,版本將會出現錯位,因爲我必須在php網頁中單獨更新它。從webview中獲取versionName

是否有一些代碼可以用來獲取android:versionName作爲變量並輸出變量(最好是php,但我願意使用其他方法)。

我想如果我可以使用一個簡單的變量,如if($_SERVER['HTTP_X_REQUESTED_WITH'] == "com.klingondragon.fakeappname") {,我用它來檢查瀏覽器是否正在使用或者它是否來自應用程序。

回答

0

也許你可以使用此代碼獲取包:

String versionName = this.getPackageManager().getPackageInfo(
       pkName, 0).versionName; 
1

添加JavascriptInterface返回版本名稱。

webView.getSettings().setJavaScriptEnabled(true); 
webView.addJavascriptInterface(new VersionJSInterface(), "version"); 

public static class VersionJSInterface { 
    @JavascriptInterface 
    public String getVersionName(){ 
    return BuildConfig.VERSION_NAME; 
    } 
} 

然後在你的webview的內容中,你可以訪問一個名爲version的對象。

<script> 
    var versionName = version.getVersionName() 
</script> 
+0

哪位替換爲@字符串/應用程序版本 – KlingonDragon

+0

您不需要單獨的字符串資源。版本名稱應該是BuildConfig中的靜態字段。 – alex