بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

مشکل جالب در باز شدن صفحه وب در نرم افزار اندروید

مدیریت گفتگو
وحید 11 سال پیش
آخرین تغییر: 11 سال پیش

سلام دوستان

در ویدئوی ( نمایش محتویات HTML )  آقای آقاجانی نشون دادند که چجوری در یکی از صفحات خود نرم افزار یک صفحه ی وب رو بارگذاری کنیم. اما من سایت uncocoder.com رو که قرار می دم به درستی در خود نرم افزار باز می کنه اما سایت خودم و چند سایت دیگه مثل گوکل رو که قرار دادم برای باز کردن صفحه ی وب وارد مرورگر گوشی می شه، در صورتی که من می خوام در خود نرم افزار باز شه.

لطفا راهنماییم کنیدیه چیز دیگه می شه یک صفحه ای که کد اچ تی ام الش رو ندارم توی یکی از صفحات برنامه ذخیرش کنم تا برای باز شدنش نیاز به مصرف اینترنت نداشته باشه و سریع باز شه؟

نظرات

Almassi 11 سال پیش
سوال یک جوریه که نمیشه جوابی براش داد. اول از همه برنامه رو بجز روی گوشی خودتان روی ابزار دیگه های هم امتحان کردید ؟ اون جا هم همین مشکل رو داره ؟
وحید 11 سال پیش
معذرت می خوام اگر سوال نا مفهومه بله روی گوشی دیگری + خود امولیتور

پاسخ‌ها 5

وحید 11 سال پیش

این قطعه کد هست:

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

حالا اگر به جای سایت بزنم www.789-7979.ir وارد مرورگر میشه

اگر می خواید فیلم بگیرم آپلود کنم :)

 

نظرات

Almassi 11 سال پیش
کد سرس پایین ظاهرا گزینه خوبیه . البته این هم که شما نوشتید هم باید کار کنه . یک سوال می تونید تو پنجره properties این webview که دارید فایند می کنید نگاه کنید ببین خصوصیاتش چیه ؟ البته منظورم اون های است که ست شدن در ضمن مطمئن هستید این R.id.web رو جای دیگه ای از برنامه صدا نکردید ؟
Hossein Kurd 11 سال پیش
اول اینکه با http وارد کن ، دوم اینکه فقط همون یک تیکه کد رو داری ؟ و سوم یه سرچی بزن ، تابستون من این سوال رو پرسیدم
ایوب شمسی 11 سال پیش

سلام دوست عزیز از این کد استفاده کنید

 import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;

public class Main extends Activity {

    private WebView mWebview ;

    @Override
    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        mWebview  = new WebView(this);

        mWebview.getSettings().setJavaScriptEnabled(true); // enable javascript

        final Activity activity = this;

        mWebview.setWebViewClient(new WebViewClient() {
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                Toast.makeText(activity, description, Toast.LENGTH_SHORT).show();
            }
        });

        mWebview .loadUrl("http://www.google.com");
        setContentView(mWebview );

    }

}
 
اینم لینک سورس http://stackoverflow.com/questions/7305089/how-to-load-external-webpage-inside-webview

نظرات

وحید 11 سال پیش
ممنون با همین کار کرد :)
parsmessage 11 سال پیش
سلام چرا بعد از چرخوندن گوشی، صفحه رلود میشه و دوباره برمی گرده صفحه اول سایت؟!!! مشکل از کدوم قسمت کد هست؟!
وحید 11 سال پیش
مشکل از کد نیست. کلا در اندروید زمانی که صفحه گوشی از حالت porterait (ایستاده) به حالت landscape (دراز:)) می ره اکتیویتی ریلود می شه و اطلاعات از بین می ره. حالا یا باید به برنامه بگید که کلا فقط در یک حالت استاده یا دراز باش یا براش در maniface تعریف کنید که اکتیویتی در هنگام چرخش از بین نره. هر دوشم با یک خط کد امکان پذیر هست.
Criss 11 سال پیش
کد تعریف در اندروید مانیفست برای اینکه اکتیویتی بعد از چرخش از بین نره چی هست ؟
Criss 11 سال پیش
اینکدی که گذاشتید به خوبی جواب میده اما مشکلی داره این هست که با زدن کلید Back از اکتیویتی خارج میشه < چطور میشه کاری کرد که لینک های باز شده رو درن ارایه نگه داشت ؟ ! یا حداقل با زدن Back به لینک قبلی برگرده !
MeY3am 11 سال پیش
Criss @ بعنوان پاسخ جدید کد موردنظرشما قرار داده شد!
وحید 11 سال پیش

این و امتحان کن ببین کار می کنه: این کد رو باید در مانیفست برنامه در اکتیویتی که می خواید با چرخش اطلاعاتش از بین نره بذارید:


android:configChanges="keyboard|keyboardHidden|orientation"

 

نظرات

MeY3am 11 سال پیش

با استفاده از قطعه کد زیر در مانیفست و بکاربردن آن در اکتیویتی موردنظر میتونید از LandScape شدن اکتیویتی جلوگیری کنید

 android:configChanges="orientation|keyboardHidden"
            android:screenOrientation="portrait"

 

 

نظرات

Criss 11 سال پیش
این کد فقط مانع از چرخش میشه < برای اینکه چرخش وجود داشته باشه اما برنامه بعد از چرخش همچنان اطلاعاتش رو از دست نده چکار باید کرد؟
Mir Unknown 11 سال پیش
کدی که بالای این پاسخ دادن کار نکرد؟!
وحید 11 سال پیش
کدی رو که قبل این پاسخ درج کردم برای همین هست که بچرخه اما اطلاعات از بین نره. خودمم هم امتحان کردم.
Criss 11 سال پیش

سلام دوستان

من از کدی که diligenceman گذاشته استفاده کردم  بخوبی هم جواب میده

اما مشکلی که پیش میاد اینه که با زدن کلید Back برنامه خارج میشه و به لینک های قبلی که باز شده اند ارجاع داده نمیشه

که با استفاده کردن کد های زیر همه چیز به خوبی کار میکنه <

 
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;


public class TestingwebviewActivity extends Activity {

ArrayList<String> URLS = new ArrayList<String>();
private WebView webView1;
int backpress = 0;


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Button button1 = (Button) findViewById(R.id.button1);
EditText editText1 = (EditText) findViewById(R.id.editText1);
webView1 = (WebView) findViewById(R.id.webView1);

webView1.getSettings().setJavaScriptEnabled(true); // enable javascript

webView1.setWebViewClient(new WebViewClient() {

@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Toast.makeText(TestingwebviewActivity.this, description, Toast.LENGTH_SHORT).show();
}
});

webView1.loadUrl("http://www.kangannews.ir/index.php?switch_modes=1");
URLS.add("http://www.kangannews.ir/index.php?switch_modes=1");

button1.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
Log.i("IN_URL", "" + webView1.getUrl());

}
});

webView1.setWebViewClient(new WebViewClient() {

@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
URLS.add(url);
Log.i("Size_1", "" + URLS.size());
for (int i = URLS.size(); i > 0; i--) {
Log.i("URL_1", "" + URLS.get(i - 1));
}
return super.shouldOverrideUrlLoading(view, url);
}
});

}


@Override
public void onBackPressed() {

if (URLS.size() >= 2) {
backpress = 0;
String url = URLS.get(URLS.size() - 2);
webView1.loadUrl(url);
URLS.remove(URLS.size() - 1);
Log.i("Size_2", "" + URLS.size());

for (int i = URLS.size(); i > 0; i--) {
Log.i("URL_2", "" + URLS.get(i - 1));
}
} else if (URLS.size() <= 1) {

Log.i("backpress", "" + backpress);

if (backpress == 0) {
Toast.makeText(TestingwebviewActivity.this, "برای خروج یکبار دیکر تلاش کنید", Toast.LENGTH_SHORT).show();
}

backpress = backpress + 1;
if (backpress > 1) {
this.finish();
}
}
}
}

 

 

نظرات


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