當你將Windows Phone APP第一次上架,或許會糾結於介紹頁面那一大串應用程式需求:
但天可憐見,你明明沒有使用到這些功能,卻要使用者吐出這些權限,雙方難免都心有疙瘩,為了避免這樣的尷尬事,以下便簡單示範如何縮減Windoes Phone的PhoneGap專案所要求的權限:
1. 開啓專案目錄中的 Properties-> WMAppManifest.xml,可看到如下這段:
<Capabilities> <Capability Name="ID_CAP_IDENTITY_DEVICE" /> <Capability Name="ID_CAP_IDENTITY_USER" /> <Capability Name="ID_CAP_LOCATION" /> <Capability Name="ID_CAP_NETWORKING" /> <Capability Name="ID_CAP_WEBBROWSERCOMPONENT" /> <Capability Name="ID_CAP_APPOINTMENTS"/> <Capability Name="ID_CAP_CONTACTS"/> <Capability Name="ID_CAP_ISV_CAMERA"/> <Capability Name="ID_CAP_MEDIALIB"/> <Capability Name="ID_CAP_MICROPHONE"/> <Capability Name="ID_CAP_PHONEDIALER"/> <Capability Name="ID_CAP_PUSH_NOTIFICATION"/> <Capability Name="ID_CAP_SENSORS"/> <Capability Name="ID_HW_FRONTCAMERA"/> </Capabilities>
將其盡可能縮減,改成:
<Capabilities> <Capability Name="ID_CAP_WEBBROWSERCOMPONENT" /> </Capabilities>
2. 一般專案經由上面那個步驟,便能有效地控制權限,但PhoneGap專案比較特殊,需要再翻出專案中的config.xml:
<widget> <plugins> <plugin name="Device"/> <plugin name="Logger"/> <plugin name="Compass"/> <plugin name="Accelerometer"/> <plugin name="Camera"/> <plugin name="NetworkStatus"/> <plugin name="Contacts"/> <plugin name="DebugConsole" /> <plugin name="Echo"/> <plugin name="File"/> <plugin name="FileTransfer"/> <plugin name="Geolocation"/> <plugin name="Notification"/> <plugin name="Media"/> <plugin name="Capture"/> <plugin name="SplashScreen"/> <plugin name="Battery"/> <plugin name="Globalization"/> <plugin name="InAppBrowser"/> </plugins> <access origin="*"/> </widget>
將沒用到的plugin都刪去,可改成:
<widget> <plugins> <plugin name="Device"/> <plugin name="Logger"/> <plugin name="NetworkStatus"/> <plugin name="DebugConsole" /> <plugin name="Notification"/> <plugin name="SplashScreen"/> </plugins> <access origin="*"/> </widget>
4. 事情還沒結束,因為仍有一些.cs檔被暗自呼叫,暗自要求權限,對於這樣的祖代越庖,我們只能辛苦點,手動將其拔除,以下是原本PhoneGap專案中的原始碼列表:
可盡量將沒有用到的.cs檔移除,如下:
5. 重新編譯,然後提交編譯後的xap檔,可看到要求功能已經大大地減少:
6. 最後等待審查結束,便能更新APP頁面的應用程式需求,還你清白了:






沒有留言:
張貼留言