2015-05-05 15 views
16

Một số mục nhập <uses-permission> được thêm tự động vào AndroidManifest.xml, dựa trên plugin cordova mà bạn thêm. Tuy nhiên, tôi cần sự cho phép của <uses-permission android:name="android.permission.INTERNET" />, không được thêm tự động.Làm cách nào để thêm thẻ "quyền sử dụng" vào AndroidManifest.xml cho dự án Cordova?

tôi có thể thêm trực tiếp vào AndroidManifest.xml, nhưng nó sẽ được ghi đè thời gian tới, tôi chạy cordova build, và tôi không muốn phải tiếp tục tái thêm nó ...

Tôi chắc chắn có một cách "Cordova" để chỉ định quyền (trong config.xml, hoặc ở nơi khác), nhưng tôi không thấy nó ở their documentation ở bất kỳ đâu ...

Vì vậy, "cách Cordova" là gì? ?

Trả lời

29

Như tôi biết AndroidManifest.xml sẽ không được tạo mỗi khi bạn chạy cordova build. Khi bạn thêm/xóa một plugin, plugin sẽ được sửa đổi cho phù hợp. Nhưng nếu bạn thêm quyền riêng của mình, nó sẽ không bị xóa (Trừ khi có xung đột).

Vì quyền là Android (nền tảng) cụ thể, trong trường hợp của bạn, bạn phải thêm nó vào tệp AndroidManifest.xml.

Ngay cả trong plugin.xml của bất kỳ plugin họ thêm sự cho phép như:

<platform name="android"> 
    <config-file target="AndroidManifest.xml" parent="/manifest"> 
     <uses-permission android:name="android.permission.INTERNET"/> 
    </config-file> 
</platform> 

Mà nói thêm dòng sử dụng-phép AndroidManifest.xml tập tin đồng thời lắp đặt các plugin. Nhưng bạn không thể đề cập đến điều này trong tập tin config.xml.

Cũng đừng quên đặt thuộc tính này trong phần tử tiện ích con gốc như @hiddentao cho biết trong nhận xét.

plugin.xml

<widget 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    ...> 
+0

Tôi đã không nhận ra rằng một số sửa đổi thủ công đối với AndroidManifest.xml vẫn còn sau khi xây dựng (vì hầu hết các thay đổi thủ công đều bị dậm). Tôi nghĩ rằng tôi đã thử nghiệm bằng tay thêm một thẻ "sử dụng quyền", nhưng tôi đoán không ... Tôi đoán tôi nên kiểm tra tốt hơn một chút trước khi đăng câu hỏi :) – Troy

+13

Để làm việc này, tôi cũng phải thêm 'xmlns: android = "http://schemas.android.com/apk/res/android" 'vào thẻ' widget' gốc trong config.xml – hiddentao

+1

Tôi tương đối mới với cảnh ghép lai, nhưng không phải là 'config- các phần tử file' và 'uses-permission' được cung cấp bởi plugin' cordova-custom-config'? Tôi không thể làm việc này cho đến khi tôi thêm plugin đó (như đã đề cập trong câu trả lời của Dorad) và sau đó là thiết lập, bao gồm định nghĩa 'xmlns: android' mà hiddentai đề cập trong phần bình luận ở trên ... có vẻ không đầy đủ.:/ – ZaLiTHkA

-1

thủ thêm dưới thẻ config-tập

<config-file target="AndroidManifest.xml" parent="/manifest"> 
    <uses-permission android:name="android.permission.INTERNET"/> 
</config-file> 
+0

cho tôi lỗi –

8

Người ta có thể thêm plugin (Git) này. Nó làm cho bạn có khả năng xác định nền tảng cụ thể cấu hình (quyền quá) dưới tập tin config.xml theo cách sau:

<platform name="android"> 
    <config-file target="AndroidManifest.xml" parent="/*"> 
     <uses-permission android:name="android.permission.INTERNET" /> 
     <!--<uses-permission android:name="android.permission.NETWORK_ACCESS" /> 
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />--> 
    </config-file> 
</platform> 

Cũng đừng quên đặt thuộc tính này trong các yếu tố phụ tùng gốc như @hiddentao đã nói trong một bình luận.

xmlns:android="http://schemas.android.com/apk/res/android" 
Các vấn đề liên quan