Я пытаюсь реализовать боковую панель с использованием Titanium, в которой у меня есть пара опций под меню боковой панели, и каждый пункт меню загружает другой вид. Один из вариантов загружает веб-просмотр. Веб-сайт или html отлично загружаются в компонент webview, но я не могу взаимодействовать с ним; в том смысле, что я не могу нажимать на ссылки или делать что-либо как таковое. Это происходит как с локальным, так и с удаленным html.Titanium SDK компонент webview не позволяет взаимодействовать с веб-сайтом, который он загружает
Для боковой панели, я интегрирование ящика виджета предоставленного Ricardo Alcocer, ссылки на свой проект GitHub это - https://github.com/ricardoalcocer/alloy-widget-drawermenu
Здесь идет блоки кода.
Index.xml
<Alloy>
<Window class="container" id="win">
<Require type="widget" src="com.alcoapps.drawermenu" id="drawermenu"/>
</Window>
</Alloy>
(опция Side меню для загрузки WebView) mainview.xml
<Alloy>
<View id="mainView">
<View id="mainTopBar">
<View id="menuButton"/>
</View>
<WebView id="chartView" url="http://www.google.co.in"/>
</View>
</Alloy>
menuview.xml (Боковая панель)
<Alloy>
<View id="menuView">
<View id="menuTopBar"/>
<TableView class="menuTable" id="menuTable">
<TableViewRow class="tableRow" id="row1">
<View id="rowContainer">
<View id="rowSkull" class="rowIcon"/><Label id="rowLabel" class="rowLabel">MainView</Label>
</View>
</TableViewRow>
<TableViewRow class="tableRow" id="row2">
<View id="rowContainer">
<View id="rowGear" class="rowIcon"/><Label id="rowLabel" class="rowLabel">Settings</Label>
</View>
</TableViewRow>
</TableView>
</View>
</Alloy>
index.js
var controls=require('controls');
// get main and menu view as objects
var menuView=controls.getMenuView();
var mainView=controls.getMainView();
// attach event listener to menu button
mainView.menuButton.add(controls.getMenuButton({
h: '60',
w: '60'
}));
//Minor changes to click event. Update the menuOpen status;
mainView.menuButton.addEventListener('click',function(){
$.drawermenu.showhidemenu();
$.drawermenu.menuOpen=!$.drawermenu.menuOpen;
}); // method is exposed by widget
// get config view as objects
var configView=controls.getConfigView();
//add menu view to ConfigView exposed by widget
configView.menuButton.add(controls.getMenuButton({
h: '60',
w: '60'
}));
//Minor changes to click event. Update the menuOpen status;
configView.menuButton.addEventListener('click',function(){
$.drawermenu.showhidemenu();
$.drawermenu.menuOpen=!$.drawermenu.menuOpen;
}); // method is exposed by widget
$.drawermenu.init({
menuview:menuView.getView(),
mainview:mainView.getView(),
duration:200,
parent: $.index
});
//variable to controler de open/close slide
var activeView = 1;
// add event listener in this context
menuView.menuTable.addEventListener('click',function(e){
$.drawermenu.showhidemenu();
$.drawermenu.menuOpen = false; //update menuOpen status to prevent inconsistency.
if(e.rowData.id==="row1"){
if(activeView!=1){
$.drawermenu.drawermainview.remove(configView.getView());
activeView = 1;
} else {
activeView = 1;
}
}
if(e.rowData.id==="row2"){
if(activeView!=2){
$.drawermenu.drawermainview.add(configView.getView());
activeView = 2;
} else{
activeView = 2;
}
}
// on Android the event is received by the label, so watch out!
Ti.API.info(e.rowData.id);
});
$.index.open();
controls.js
var Alloy=require('alloy');
exports.getMainView=function(){
return Alloy.createController('mainview');;
};
exports.getMenuView=function(){
return Alloy.createController('menuview');
};
exports.getMenuButton=function(args){
var v=Ti.UI.createView({
height: args.h,
width: args.w,
backgroundColor: '#A1D0E0'
});
var b=Ti.UI.createView({
height: "20dp",
width: "20dp",
backgroundImage: "/106-sliders.png"
});
v.add(b);
return v;
};
//Get the Configuration Controller
exports.getConfigView=function(){
return Alloy.createController('config');
};
Я не предоставил блоки кода для страницы Настройки (вторая боковая панель опций меню), а также таблицы стилей, которые я думаю, что не должно быть причиной проблемы.
Я посмотрел Titanium Studio Webview not letting me interact with website , но это не поможет в моем случае. Мне нужно иметь такую реализацию, и я думаю, что, безусловно, должно быть какое-то решение.
Любые виды помощи будут высоко оценены. Благодарю.
Я столкнулся с той же проблемой, и ваш ответ мне очень помог! Спасибо, что поделились ею =) –
Замечательно, что это вам помогло. @CarlosHenriqueLustosa – letsbondiway