Saya mencoba memuat file html ke UIWebView saya tetapi tidak berfungsi. Inilah tahapnya: Saya memiliki folder bernama html_files di proyek saya. Lalu saya membuat webView in interface builder dan menetapkan outlet di viewController. Ini adalah kode yang saya gunakan untuk menambahkan file html:
-(void)viewDidLoad
{
NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"sample" ofType:@"html" inDirectory:@"html_files"];
NSData *htmlData = [NSData dataWithContentsOfFile:htmlFile];
[webView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:[NSURL URLWithString:@""]];
[super viewDidLoad];
}
Itu tidak akan berfungsi dan UIWebView kosong. Saya menghargai bantuan.
ios
objective-c
iphone
cocoa-touch
uiwebview
madcoderz
sumber
sumber
EDIT 2016-05-27 -
loadRequest
memperlihatkan "kerentanan universal Cross-Site Scripting." Pastikan Anda memiliki setiap aset tunggal yang Anda muat. Jika Anda memuat skrip yang buruk, ia dapat memuat apa pun yang diinginkannya.Jika Anda memerlukan tautan relatif untuk bekerja secara lokal, gunakan ini:
Bundel akan mencari semua subdirektori dari proyek yang akan ditemukan
my.html
. (struktur direktori akan pipih saat membangun)Jika
my.html
memiliki tag<img src="some.png">
, webView akan dimuatsome.png
dari proyek Anda.sumber
dengan ini Anda dapat memuat file html yang ada di Aset proyek Anda (bundel) ke webView.
Semoga ini bermanfaat bagi Anda.
sumber
Saya kira Anda perlu
allocate
dan initwebview
pertama Anda ::sumber
Cuplikan kode Salin-Tempel Sederhana:
catatan:
Pastikan keanggotaan Target file html dicentang jika tidak, pengecualian berikut akan dibuang: -
Mengakhiri aplikasi karena pengecualian tanpa tertangkap
'NSInvalidArgumentException', reason: '*** -[NSURL initFileURLWithPath:isDirectory:]: nil string parameter'
sumber
Untuk Swift 3 dan Swift 4:
sumber
sumber
Mungkin file HTML Anda tidak mendukung pengkodean UTF-8, karena kode yang sama berfungsi untuk saya.
Atau Anda dapat juga baris kode ini:
sumber
Berikut cara pengerjaan file HTML dengan Jquery.
Anda dapat menggunakan salah satu permintaan untuk memanggil file HTML di UIWebview Anda
sumber
Pastikan "html_files" adalah direktori dalam bundel utama aplikasi Anda, dan bukan hanya grup di Xcode.
sumber
Cara baru untuk melakukan ini menggunakan swift. UIWebView tidak lebih dan WKWebView adalah kelas baru untuk memuat halaman web, yang memastikan fitur-fitur Safari untuk tampilan web.
sumber
sumber
Mungkin terlambat tetapi jika file dari
pathForResource
adalahnil
Anda harus menambahkannya diBuild Phases > Copy Bundle Resources
.sumber
Inilah Swift 3:
sumber
sumber
Di Swift 2.0, jawaban @ user478681 mungkin terlihat seperti ini:
sumber
Masukkan semua file (html dan sumber daya) ke direktori (untuk "manual" saya). Selanjutnya, seret dan lepas direktori ke XCode, melalui "File Pendukung". Anda harus memeriksa opsi "Salin Item jika perlu" dan "Buat referensi folder". Selanjutnya, tulis kode sederhana:
Perhatian pada
@"manual/index"
, manual adalah nama direktori saya !! Semuanya !!!! Maaf untuk bahasa Inggris saya yang buruk ...================================================== =====================
Hola desde Kosta Rika. Tidak ada arsip (html and demurs recursos) di un directorio (manual en mi caso lo llamé), tetapi, untuk beberapa kode XCode, jadi "Mendukung File". Gunakan opsi ini untuk menyalin "Salin Item jika perlu" y "Buat referensi folder".
Lihat di sini
@"manual/index"
, manual dari es dan direktur !!sumber
Saat proyek Anda bertambah besar, Anda mungkin memerlukan beberapa struktur, sehingga halaman HTML Anda dapat mereferensikan file yang terletak di subfolder.
Dengan asumsi Anda menyeret
html_files
folder Anda ke Xcode dan memilih opsi Buat referensi folder , kode Swift berikut memastikan bahwaWKWebView
dukungan juga merupakan struktur folder yang dihasilkan:Ini berarti bahwa jika
sample.html
file Anda berisi<img src="subfolder/myimage.jpg">
tag, maka file gambarmyimage.jpg
disubfolder
juga akan dimuat dan ditampilkan.Kredit: https://stackoverflow.com/a/8436281/4769344
sumber