Ücretsiz APK oluştur

Cihaz özellikleri

Yerel Klasor Erisimi

WebView'dan ve çevrimdışı HTML uygulamalarından SAF destekli yerel klasörleri kullanın

1Bu özellik ne yapar#

Bu özellik, web uygulamanıza Storage Access Framework (SAF) kullanarak kullanıcının seçtiği tek bir Android klasörüne kontrollü erişim verir. Çevrimdışı HTML uygulamaları, düzenleyiciler, yedekleme/geri yükleme akışları ve içe/dışa aktarma araçları için iyi çalışır.

Sınırsız cihaz depolama erişimi VERMEZ. Kullanıcı açıkça tek bir klasör seçer ve uygulamanız yalnızca izin verilen o ağaç içinde çalışabilir.

2Oluşturucuda etkinleştirin#

Oluşturucunun 4. Adım'ında 'Yerel Klasör Erişimi (SAF)'ı AÇIN. Sonra uygulamayı oluşturun.

Etkinleştirildiğinde web siteniz, ham window.WebToApk köprüsüne ek olarak window.WebToApkFS üzerinde üst düzey bir yardımcı alır.

⚠️ Android 11+ Depolama Notu: Android 11 ve üzerinde paylaşılan depolamayı okumak, özel 'Tüm Dosyalara Erişim' iznini gerektirir. Oluşturulan uygulamanız ilk kez başladığında ve depolama izni etkinse, kullanıcının bu izni vermesi için Android Ayarlar ekranını otomatik olarak açar. Kullanıcı yalnızca Ayarlar'da anahtara dokunup uygulamaya döner - elle gezinmeye gerek yok.

3Tarayıcı için güvenli yetenek denetimi#

Android köprüsünün bulunmadığı Chrome/Safari'de de çalışması için kodunuzu her zaman koruyun:

function canUseNativeFiles() {
  return !!(window.WebToApkFS && window.WebToApkFS.isAvailable());
}

if (canUseNativeFiles()) {
  console.log('Android native folder access available');
}

4Kullanıcıdan klasör seçmesini isteyin#

requestAccess() işlevini bir düğme tıklamasından veya başka bir net kullanıcı eyleminden çağırın. Android'in klasör seçicisini açar ve seçilen klasör URI'sini döndürür.

async function connectFolder() {
  const result = await window.WebToApkFS.requestAccess();
  if (!result.success) {
    alert('Folder access was not granted');
    return false;
  }
  console.log('Granted folder:', result.folderUri);
  return true;
}

5Temel dosya işlemleri#

Erişim verildikten sonra klasörleri listeleyebilir, dizin oluşturabilir, metin dosyalarını okuyabilir ve yazabilir, öğeleri yeniden adlandırabilir ve silebilirsiniz.

// Create folders
window.WebToApkFS.mkdir('notes');
window.WebToApkFS.mkdir('notes/2026');

// Write a file
window.WebToApkFS.writeText('notes/2026/today.txt', 'Hello from offline app');

// Read it back
const text = window.WebToApkFS.readText('notes/2026/today.txt');
console.log(text);

// List folder contents
const entries = window.WebToApkFS.list('notes/2026');
console.log(entries);

6Yeniden adlandırma ve silme#

Yeniden adlandırma yalnızca son öğenin adını değiştirir. Silme, özyinelemeli olmayan ve özyinelemeli dizin silmeyi destekler.

// Rename file or folder
window.WebToApkFS.rename('notes/2026/today.txt', 'journal.txt');

// Delete a single file
window.WebToApkFS.delete('notes/2026/journal.txt');

// Delete a folder tree
window.WebToApkFS.delete('notes/2026', { recursive: true });

7İyi kullanım alanları#

✅ Çevrimdışı not veya günlük uygulamaları
✅ CSV / JSON içe/dışa aktarma araçları
✅ Basit yerel yedekleme ve geri yükleme
✅ Kullanıcı içeriğini kaydeden statik HTML düzenleyiciler
✅ Raporları metin veya CSV olarak dışa aktaran panel uygulamaları

8Sınırlamalar#

⚠️ Bu yalnızca Android içindir. Normal masaüstü/mobil tarayıcılarda bulunmaz.

⚠️ Mevcut yardımcı, klasör listeleme ve metin dosyaları etrafında tasarlanmıştır. İkili (binary) iş akışları ek API'ler gerektirir.

⚠️ Erişim, kullanıcının izin verdiği tek klasörle sınırlıdır.

⚠️ Yardımcının eklenmiş olması için bu API'leri sayfa yüklendikten sonra çağırın.

9Eksiksiz çalışan örnek#

Bu örnek bir klasörü bağlar, bir çalışma alanı dizini oluşturur, bir JSON dosyası yazar ve klasör listesini görüntüler:

async function setupWorkspace() {
  if (!window.WebToApkFS || !window.WebToApkFS.isAvailable()) {
    console.log('Native folder access not available in this browser');
    return;
  }

  if (!window.WebToApkFS.hasAccess()) {
    const granted = await window.WebToApkFS.requestAccess();
    if (!granted.success) return;
  }

  window.WebToApkFS.mkdir('workspace');
  window.WebToApkFS.writeText(
    'workspace/config.json',
    JSON.stringify({ updatedAt: new Date().toISOString(), mode: 'offline' }, null, 2)
  );

  const files = window.WebToApkFS.list('workspace');
  document.getElementById('output').textContent = JSON.stringify(files, null, 2);
}

Bu sayfa, uygulamanın içindeki Entegrasyon Rehberi'nden oluşturulur, bu yüzden mevcut derlemenin söylediğini aynen söyler. Markdown olarak okuyun.

22.10.2026 tarihinde yayınlanan rehberle karşılaştırılarak kontrol edildi.