#html #local #nativescript
#HTML #Местные новости #nativescript
Вопрос:
Я пытался найти способ загрузить содержимое локальной веб-страницы и установить html-содержимое webview в собственном скрипте. Я успешно запустил его на симуляторе, но, похоже, он не работает на устройстве. Я погуглил, и большинство людей говорят, что мне нужно найти свои HTML-файлы в каталоге «Документы» моего приложения, но, насколько я вижу, нет способа получить нужные мне файлы при развертывании приложения. Может ли кто-нибудь еще пролить свет на способы получения файлов, расположенных в папке documents приложения при развертывании или копировании их там во время выполнения. Спасибо
var createViewModel = require("./main-view-model").createViewModel;
var orientationModule = require("nativescript-screen-orientation");
var fs = require("file-system");
var webViewInterfaceModule = require('nativescript-webview-interface');
var oWebViewInterface;
var page;
function pageLoaded(){
setupWebViewInterface(page);
// orientationModule.setCurrentOrientation("landscape", function(){
// //console.log("landscape orientation set");
// });
}
// Initializes plugin with a webView
function setupWebViewInterface(page){
var webView = page.getViewById('webView');
var documents = fs.knownFolders;
oWebViewInterface = new webViewInterfaceModule.WebViewInterface(webView, documents.currentApp().path '/htllo/index.html');
}
function navigatingTo(args) {
page = args.object;
page.bindingContext = createViewModel();
}
exports.pageLoad = pageLoaded;
exports.navigatingTo = navigatingTo;
Комментарии:
1. Для доступа
Documents
к папке устройства Android вы должны использовать собственный код. Здесь вы найдете пример — github.com/tsonevn/ReadFilesFromDevice/blob/master/app /… , как это сделать. Что касается вашего вопроса, вы должны установитьDIRECTORY_DOCUMENTS
ingetExternalStoragePublicDirectory
метод вместоDIRECTORY_DOWNLOADS
. Для получения дополнительной информации о том, к каким каталогам вы можете получить доступ в Android, вы можете просмотреть статью здесь — developer.android.com/reference/android/os/Environment.html .2. Спасибо за ваш ответ. Это не совсем то, что я хочу. В принципе. Моему клиенту нужно приложение, в котором я могу войти в систему и зарегистрироваться в компонентах собственного приложения. Затем оттуда перенаправляется на «домашнюю» страницу, которая представляет собой веб-окно, в котором я загружаю index.html это находится локально. Поэтому, когда я помещаю папку с html в каталог приложения, она отлично работает в симуляторе, но не на устройстве ios. Я нашел, где другой парень сказал, что у него такая же проблема, пока он не начал загружать файлы из каталога Documents, а не из каталога app.
3. У него нет проблем с файловой структурой и т. Д., И я не хочу связываться с машинным кодом, мне просто нужно знать, как 1. Разверните мою папку html в каталог Documents как на ios, так и на Android при компиляции на устройство или переместите их из каталога приложений в каталог documents при первой загрузке приложения. Большое вам спасибо за ваш hlep
4. Я не уверен, почему вы должны перемещать файлы в
Documents
каталог. Вы могли бы просмотреть пример в ответе, где было показано, как загрузить WebVew src из локального файла.5. Всем привет. Нет, все та же проблема. Это текущая проблема на устройстве ios (указано здесь whoischris.com/nativescript-js ). Вот почему мне нужно переместить файлы. Спасибо вам за вашу помощь
Ответ №1:
Вот пример того, как добавить WebView src
из локального файла. В примере были показаны оба случая с nativescript-webview-interface
плагином и без него. ~/
возвращает путь к вашей app
папке.
main-page.xml
<Page xmlns="http://schemas.nativescript.org/tns.xsd" navigatingTo="navigatingTo" loaded="onLoaded">
<GridLayout rows="150 *" columns="*">
<WebView row="0" col="0" id="WebViewId"/>
<WebView row="1" col="0" id="WebViewId2"/>
</GridLayout>
</Page>
main-page.ts
import { EventData } from 'data/observable';
import { Page } from 'ui/page';
import { HelloWorldModel } from './main-view-model';
var webViewInterfaceModule = require("nativescript-webview-interface");
import {WebView} from "ui/web-view";
var oWebViewInterface;
export function onLoaded(args: EventData) {
let page = <Page>args.object;
var webView:WebView = <WebView>page.getViewById('WebViewId');
oWebViewInterface = new webViewInterfaceModule.WebViewInterface(webView, '~/index.html');
var SecondWebView:WebView = <WebView>page.getViewById('WebViewId2');
SecondWebView.src="~/secondpage.html"
page.bindingContext = new HelloWorldModel();
}
Комментарии:
1. Вау. Благодарим вас за комментарий по поводу ‘~/’, указывающего на каталог вашего приложения. Я на Linux, поэтому, естественно, думаю, что он указывает на домашний каталог. Я попробовал это, но все равно не работал на устройстве, как указано в следующей ссылке: whoischris.com/nativescript-js . Кажется, существует открытая проблема с загрузкой прямо из каталога приложений, и он указывает, что как только он переместил каталог в каталог документов, это устранило проблему с загрузкой. но когда я развертываю файлы с приложением, я не знаю, как перенести эти файлы в каталог Documents. И до сих пор не найдено способа переместить файлы в этот каталог
2. Я не могу получить доступ к файлу. Мой index.html не может быть загружен, потому что net::ERR_ACCESS_DENIED Пожалуйста, помогите