آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل در webwiew

BrotherV  11 سال پیش  11 سال پیش
+5 0

با سلام خدمت تمامی دوستان و استاد گرامی جناب آقای آقاجانی

مشکل اول:
در webwiev در صورت فعال بودن  HardwareAccelerator پس از لودینگ صفحه، با بالا و پایین کردن webwiev، شروع به چشمک زدن میکنه که کار را زشت به نظر میرسونه.

مشکل دوم:
با نگه داشتن انگشت روی وب ویو پس از مدت زمان طولانی، صفحه وب ویو بسته میشه، یعنی سیستم صفحه را می بنده.

خوب متن سوال به علت پیدا شدن جواب تغییر کرد و امیدوارم دوستانی که به این مشکل بر میخورن اینجا به جوابشون برسن.
موفق و پیروز باشید.

 برای این سوال 6 پاسخ وجود دارد.
پاسخ به سوال 
BrotherV  11 سال پیش
+3 0

حل مشکل دوم:

خوب از اونجایی که این مشکل حاد بود و برای خودم جالب سعی کردم تا یه راهکاری براش پیدا کنم.
مشکل آنجایی شروع می شد که مدت زمان طولانی  انگشتم روی webview قرار می گرفت، در این حالت سیستم به طور اتوماتیک متد longclickable را فراخونی می کرد، خوب چون به در بسته می خورد برنامه را متوقف می کرد. خوب در ویژگی های webview اومدیم و گزینه longclickable را غیرفعال کردیم ولی نشد. بالاخره با اعمال کد زیر حالت longclickable را در برنامه حل کردم. الان هر چی انگشت را روی صفحه قرار میدم  دیگه خطا نمی ده

WebView wv=(WebView) findViewById(R.id.webview1);
wv.loadUrl("file:///android_asset/ABCDEF.html");

wv.setLongClickable(true); wv.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick(View v) { return true; } });

 

پاسخ به سوال 
BrotherV  11 سال پیش
+3 0

حل مشکل اول:

مشکل از اونجایی شروع میشه که (HardwareAccelerated=true) قرار میگیره، خوب این حالت برای API های 11 به بالا هست، از این بابت برای حل این موضوع باید یا بیخیال فعال سازی شتابدهنده بشیم یا از کدهای زیر در طول اجرای برنامه استفاده کنیم.
برای این کار نیاز هست تا متد API 11 را در برنامه فراخونی کنیم. چاره ای نیست. کد خطهای زیر این مشکل را حل می کنن.

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
.
.
.
WebView wv=(WebView) findViewById(R.id.webView1);
////حل مشکل
wv.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
////افزایش سرعت رندر
wv.getSettings().setRenderPriority(RenderPriority.HIGH); wv.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
پاسخ به سوال 
Criss  11 سال پیش
+3 0

سلام دوستان من با WEBVIEWتا مشکل دارم

1.میخام صفحه ایی که باز میشه از انداز WEBVIEW بیرون نزنه و دقیقا CENTER INSIDE باشه

WebView webView1 = (WebView) findViewById(R.id.webView1);
webView1.loadUrl("http://uncocoder.com");

فکر کنمWebView  ، سنتر انساید android:scaleType="centerInside" زو نداشته باشه ! چاره چیه ؟

+1 0
سلام،،، دقیقا چطوری میزنه بیرون؟ من کامل متوجه منظور شما نشدم.اما اگر منظورتون اینه که به فزض مثال یه بگ گراند دارید و میخواید قشنگ روی بگ گراند بیفته ، یه جورایی باید با Margine بازی کنی. از طرفی اگر میخوای دقیقا وسط کادر باشه در صورتی که Gravity را در Layout به صورت Center قرار بدی ( در صورت Lenear بودن Layout) ویجت شما اتوماتیک در وسط قرار میگیره. نمی دونم منظوز شما را درست متوجه شدم یا نه. موفق و پیروز باشید. (11 سال پیش)
پاسخ به سوال 
Criss  11 سال پیش
0 0

 

 

پاسخ به سوال 
BrotherV  11 سال پیش
+1 0

برای حل مشکل بالا کد فایل های زیر را در برنامه قرار بده.من این کدها را استفاده کردم و خوب هم جواب میده و با فرایندهای دیگه مشکلی نخواهد داشت. ایشالا سر حوصله کدها را توضیح میدم.

@SuppressLint("SetJavaScriptEnabled")
public class AC_WebBrowser extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
	super.onCreate(savedInstanceState);
	setContentView(R.layout.ac_webbrowser);
	
	WebView webView = (WebView) findViewById(R.id.wv_WebBrowser);
	webView.setInitialScale(1);
	webView.getSettings().setJavaScriptEnabled(true);
	webView.getSettings().setLoadWithOverviewMode(true);
	webView.getSettings().setUseWideViewPort(true);
	webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
	webView.setScrollbarFadingEnabled(false);

	try {
	     // load the url
	     webView.loadUrl("http://uncocoder.com");
	    } catch (Exception e) {
	     e.printStackTrace();
	    }
}
}

این هم کد XML برای اکتیویتی هست.

 <WebView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/wv_WebBrowser"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:gravity="center"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.webbrowser" >

</WebView>
+1 0
سلام من هم مشکل دوستمون رو دارم ، یعنی در حالت webview ، صفحه نمایش متن بزرگتر از صفحه گوشی میشه ، دقیقا تصویر بالا. این کدی که شما نوشتین رو دقیقا کجای برنامه باید درج کرد؟ (11 سال پیش)
0 0
سلام در خصوص مشکل بالا اگر میخواید صفحه وب را لود کنید، کافیه کدهای مربوط به وب ویو که بالا نوشتم را در اکتیویتی مورد نظرتون وارد کنید. البته شما به طور کامل نمی تونید یه مرورگر اینترنت کامل را با کدهای بالا پیاده کنید اما برای تمام صفحه شدن وب سایت ها از کدهای بالا استفاده باید کرد. (11 سال پیش)
پاسخ به سوال 
saberi888  11 سال پیش
+1 0

سلام دوست عزیز
منم همین مشکل رو داشتم و بالاخره حل شد!
من کد html   رو براتون فرستادم ، همه چی دقیقا مثل توضیحات استاد توی قسمت 03-24  (آموزش کتاب) هست. تنها تفاوت  ، چهار خط مونده به آخر کد هست :

<div class="rtl">

داخل تگ div کلاس رو "rtl" میزاریم.

همین!
مشکل حل شد. :

 


 
<style>
@font-face {
font-family: 'yekan';
src: url('font/test.svg') format('svg');
}

* {
text-align: right;
color: #fff;
}

html,body {
font-size: 13px;
background-color: #000;
line-height: 200%;
}

.ltr {
direction: ltr;
}

.rtl {
direction: rtl;
}

.wideLine {
line-height: 2.0em;
}

h2 {
color: #f80;
}
</style>

<div class="rtl">
<body>
</br>
</br>
</body>

</div>

0 0
(11 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .