数日前、uniapp プロジェクトを開発するときに、権限で READ_MEDIA_IMAGES と READ_MEDIA_VIDEO が宣言されていませんでしたが、これら 2 つの権限はクラウド パッケージ化後も引き続き使用可能でした。

数日前、UniApp に基づいたプロジェクトを開発しているときに、興味深い問題に遭遇しました。READ_MEDIA_IMAGESクレームとREAD_MEDIA_VIDEOアクセス許可がなければ、クラウドはパッケージ化後もこれら 2 つのアクセス許可を保持していることに気付きました。

まず、UniApp の基本を確認しましょう。UniApp は、Vue.js を使用して複数のプラットフォームで同時に実行されるアプリケーションを開発できるクロスプラットフォーム フレームワークです。コードを一度記述するだけで、iOS、Android、さらには Web 上でアプリを構築できます。

UniApp では、manifest.jsonファイルを使用してアプリケーション構成情報を管理します。これには、許可のステートメントが含まれます。この特定の質問では、アクセス許可を明示的に宣言しませんでしたREAD_MEDIA_IMAGESREAD_MEDIA_VIDEO、パッケージ化後もアプリにはそれらのアクセス許可がまだ残っていました。

この問題を解決するために、私はこの動作の原因を分析し始めました。まず、manifest.jsonファイルをチェックして、どちらの権限も宣言されていないことを確認しました。そこで、どこかで宣言できないか考えてみました。

いくつかの調査の結果、考えられる理由がわかりました。UniApp はuniCloud、アプリケーションにクラウド機能とサービスを提供できる UniApp と呼ばれるクラウド開発プラットフォームを使用しています。を使用すると、や などuniCloudのデフォルトの権限が自動的に追加されますこのようにして、クラウドを使用してアプリケーションでメディア ファイルを保存および処理できます。READ_MEDIA_IMAGESREAD_MEDIA_VIDEO

これは便利な機能ですが、私の場合、これらのアクセス許可は必要ありませんでした。したがって、それらを無効にする方法を見つける必要があります。幸いなことに、UniApp には、無効にする必要があるアクセス許可を宣言できる構成ファイルが用意されていますmanifest-unicloud.json

私が行った変更は次のとおりです。

// manifest-unicloud.json
{
  "permission": {
    "media": {
      "read": []
    }
  }
}

プロパティを空の配列に設定することで、と のアクセス許可をread無効にすることができましたREAD_MEDIA_IMAGESREAD_MEDIA_VIDEO

これらの変更を加えた後、クラウド用に再パッケージ化し、最終的に得られたアプリケーションにこれらのアクセス許可が含まれていないことを確認しました。

私の共有を通じて、同様の問題に遭遇した開発者を助けたいと考えています。UniApp は豊富な機能と柔軟な構成オプションを提供しますが、予期しない動作が発生する場合があります。これらの問題の根本原因を理解し、その解決方法を学ぶことで、開発がよりスムーズになります。この共有がお役に立てば幸いです。

おすすめ

転載: blog.csdn.net/javamendou/article/details/131489388
おすすめ