2016-05-11 55 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