رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

چرا وب ويو فقط نمايش ميده؟


پست های پیشنهاد شده

چطور ميشه webview يي كه گذاشتيم تو صفحه قابليت هاي مرورگر رو داشته باشه؟

بشه رو لينكها كليك كرد و متن وارد كرد تو تكست باكس ها..

لینک ارسال
به اشتراک گذاری در سایت های دیگر

برای اینکار میبایستی از کلاس  WebChromeClient و WebViewClient استفاده کنید.

[shcode=java]myWebView = (WebView) findViewById(R.id.webView1);

        

        //enable Javascript

        myWebView.getSettings().setJavaScriptEnabled(true);

        

        //loads the WebView completely zoomed out

        myWebView.getSettings().setLoadWithOverviewMode(true);

        

        //true makes the Webview have a normal viewport such as a normal desktop browser

        //when false the webview will have a viewport constrained to it's own dimensions

        myWebView.getSettings().setUseWideViewPort(true);

        

        //override the web client to open all links in the same webview

        myWebView.setWebViewClient(new MyWebViewClient());

        myWebView.setWebChromeClient(new MyWebChromeClient());

        

        //Injects the supplied Java object into this WebView. The object is injected into the

        //JavaScript context of the main frame, using the supplied name. This allows the

        //Java object's public methods to be accessed from JavaScript.

        myWebView.addJavascriptInterface(new JavaScriptInterface(this), "Android");

        

        //load the home page URL

        myWebView.loadUrl("http://demo.mysamplecode.com/Servlets_JSP/pages/androidWebView.jsp");

{

private class MyWebViewClient extends WebViewClient {

     @Override

     public boolean shouldOverrideUrlLoading(WebView view, String url) {

         if (Uri.parse(url).getHost().equals("demo.mysamplecode.com")) {

             return false;

         }

         Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));

         startActivity(intent);

         return true;

     }

 }

 

 private class MyWebChromeClient extends WebChromeClient {

     

  //display alert message in Web View

  @Override

     public boolean onJsAlert(WebView view, String url, String message, JsResult result) {

         Log.d(LOG_TAG, message);

         new AlertDialog.Builder(view.getContext())

          .setMessage(message).setCancelable(true).show();

         result.confirm();

         return true;

     }

 

 }

 

 public class JavaScriptInterface {

     Context mContext;

 

     // Instantiate the interface and set the context

     JavaScriptInterface(Context c) {

         mContext = c;

     }

     

     //using Javascript to call the finish activity

     public void closeMyActivity() {

         finish();

     }

     

 }

 

[/shcode]

لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 2 ماه بعد...

.

دوستان!

من هم از وب ویو استفاده کردم. آدرس یک سایت را دادم. یک بار باز شد.

اما در بار دوم به علت قطع احتمالی اینترنت صفحه لود نشد. تازه متوجه شدم که باید یک دکمه برای رفرش صفحه در اکشن بار بگذارم.

دکمه را می توانم در اکشن بار قرار دهم، اما دستور رفرش صفحه را دوستان لطف کنند و راهنمائی کنند.

با تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

.

دوستان!

من هم از وب ویو استفاده کردم. آدرس یک سایت را دادم. یک بار باز شد.

اما در بار دوم به علت قطع احتمالی اینترنت صفحه لود نشد. تازه متوجه شدم که باید یک دکمه برای رفرش صفحه در اکشن بار بگذارم.

دکمه را می توانم در اکشن بار قرار دهم، اما دستور رفرش صفحه را دوستان لطف کنند و راهنمائی کنند.

با تشکر

هر بار آدرسی که میدی اون آدرسو تو یه متغیر بریز بعد ازون متغیر اون ادرس رو فراخوانی کن

لینک ارسال
به اشتراک گذاری در سایت های دیگر

چگونه می توانم یک دکمه در اکشن بار یا در صفحه قرار دهم تا اگر صفحه به سایت مربوطه نرفت بتوانم صفحه را رفرش کنم.

لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 4 ماه بعد...

برای اینکار میبایستی از کلاس  WebChromeClient و WebViewClient استفاده کنید.

[shcode=java]myWebView = (WebView) findViewById(R.id.webView1);

        

        //enable Javascript

        myWebView.getSettings().setJavaScriptEnabled(true);

        

        //loads the WebView completely zoomed out

        myWebView.getSettings().setLoadWithOverviewMode(true);

        

        //true makes the Webview have a normal viewport such as a normal desktop browser

        //when false the webview will have a viewport constrained to it's own dimensions

        myWebView.getSettings().setUseWideViewPort(true);

        

        //override the web client to open all links in the same webview

        myWebView.setWebViewClient(new MyWebViewClient());

        myWebView.setWebChromeClient(new MyWebChromeClient());

        

        //Injects the supplied Java object into this WebView. The object is injected into the

        //JavaScript context of the main frame, using the supplied name. This allows the

        //Java object's public methods to be accessed from JavaScript.

        myWebView.addJavascriptInterface(new JavaScriptInterface(this), "Android");

        

        //load the home page URL

        myWebView.loadUrl("http://demo.mysamplecode.com/Servlets_JSP/pages/androidWebView.jsp");

{

private class MyWebViewClient extends WebViewClient {

     @Override

     public boolean shouldOverrideUrlLoading(WebView view, String url) {

         if (Uri.parse(url).getHost().equals("demo.mysamplecode.com")) {

             return false;

         }

         Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));

         startActivity(intent);

         return true;

     }

 }

 

 private class MyWebChromeClient extends WebChromeClient {

     

  //display alert message in Web View

  @Override

     public boolean onJsAlert(WebView view, String url, String message, JsResult result) {

         Log.d(LOG_TAG, message);

         new AlertDialog.Builder(view.getContext())

          .setMessage(message).setCancelable(true).show();

         result.confirm();

         return true;

     }

 

 }

 

 public class JavaScriptInterface {

     Context mContext;

 

     // Instantiate the interface and set the context

     JavaScriptInterface(Context c) {

         mContext = c;

     }

     

     //using Javascript to call the finish activity

     public void closeMyActivity() {

         finish();

     }

     

 }

 

[/shcode]

ممنون داداش اوکی هست فقط چرا وقتی رو یه لینک کلیک می کنم اونو تو مرورگر گوشی باز می کنه نه تو وب ویو؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

آقا فرزاد چكار كنم كه وقتي رو لينكي تو وب ويو كليك شد به مرورگر منتقل نشيم و تو همون وب ويو باز بشه!؟؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 2 هفته بعد...

شما کافیه این کد ها مربوط به این shouldOverrideUrlLoading پاک کنید

پاك مي كنم,ولي ديگه اصلا لينك ها باز نميشن.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...