2014-07-25 36 views

回答

1

是的,有些平臺允許在運行時進行封裝內省。

在Android上,本機庫爲PackageManager,鏈接到文檔。是否可以從界面獲得所需的信息(希望)可以記錄到

目前沒有插件或API可以從phonegap javascript環境訪問此信息。但是,這將很容易實現。

我可能願意將這樣一個插件放在一起。這將是相對簡單並且可能有用的。或者我可以幫助你完成整個過程。

編輯 是,該信息可用,這裏是一個片段:

if ((ctx.getPackageManager().getPackageInfo(
    ctx.getPackageName(), 0).applicationInfo.flags & 
    ApplicationInfo.FLAG_DEBUGGABLE) != 0) { 
    //Debug and development mode 
    BASE_SERVICE_URL = "http://qa.example.com"; 
} 

我發現上面的代碼在MOBIARCH BLOG

0

使用Ace plugin,你可以任意調用的API。所以來自Lorenzo的代碼可以寫成如下的JavaScript代碼:

var ctx = ace.android.getContext(); 
ctx.invoke("getPackageManager", function (pm) { 
    ctx.invoke("getPackageName", function (name) { 
     pm.invoke("getPackageInfo", name, 0, function (info) { 
      info.getField("applicationInfo", function (appInfo) { 
       ace.NativeObject.getField("android.content.pm.ApplicationInfo", "FLAG_DEBUGGABLE", function(DEBUGGABLE) { 
        appInfo.getField("flags", function (flags) { 
         if (flags & DEBUGGABLE != 0) { 
          // Debug and development mode 
          BASE_SERVICE_URL = "http://qa.example.com"; 
         } 
        }); 
       }); 
      }); 
     }); 
    }); 
}); 
相關問題