当应用程序第二次启动时,是否可以使用SharedPreferences更改WebView的默认loadUrl?

时间:2018-08-22 21:36:52

标签: java android webview sharedpreferences

我正在编写一个使用WebView的应用程序,每次启动该应用程序时,它都会进入相同的loadUrl。这是我建立的WebView。其次是我希望WebView执行的所有其他操作。

myWebView = findViewById(R.id.myWebView);
WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.loadUrl(theUrlHere);

现在,可以说用户满足了特定条件,是否采取了某些措施,或者只是第二次启动应用程序,是否有可能使用SharedPreferences来更改网址将在下次启动该应用程序时加载?

编辑:我可以举个例子来说明如何实现吗?预先感谢!

2 个答案:

答案 0 :(得分:1)

共享首选项实施:

private SharedPreferences pref;

然后加载

pref = this.getSharedPreferences("myAppPref",MODE_PRIVATE);

现在,如果他满足您所说的关于保存newUrl的条件,请放上新网址

pref.edit().putString("url","my new url to be loaded").commit();

,并且当用户现在重新打开(或第一次打开)时,您必须从首选项中加载它:

String WebUrl= pref.getString("url","default url here");
myWebView.loadUrl(WebUrl); //this is ur webview

现在,如果该值为NULL(未找到),它将返回默认的url(这种情况是他第一次打开)

注意:,您应该在退出时清除缓存。

注意::如果用户清除了应用程序数据,此值将丢失。

答案 1 :(得分:0)

是的,您可以

首先,创建此类以处理SharedPreferencess

  public class SharedPreferensessClass {

        static SharedPreferensessClass Instance;
        static SharedPreferences sharedPreferences;
        static SharedPreferences.Editor editor;
        Context context;

        public SharedPreferensessClass(Context context) {
            this.context = context;
        }



        public static SharedPreferensessClass getInstance(Context context) {

            if (Instance == null) {
                Instance = new SharedPreferensessClass(context);
            }
            init(context);
            return Instance;
        }


        public static void init(Context context) {
            if (sharedPreferences == null) {
                sharedPreferences = context.getSharedPreferences("app_name", Context.MODE_PRIVATE);
            }

            if (editor == null) {
                editor = sharedPreferences.edit();
            }
        }



    public static void setFirstTimeFalse() {

            editor.putBoolean("firstTime", false);
            editor.commit();
        }

        public static boolean getFirstTime() {
            return sharedPreferences.getBoolean("firstTime", true);
        }
   public static String getLink() {

        return sharedPreferences.getString("mainUrl", "");
    }

    public void setLink(String name) {
        editor.putString("mainUrl", name);
        editor.commit();
    }
}

然后使用此代码第一次保存链接

 if (SharedPreferensessClass.getInstance(getBaseContext()).getFirstTime()) {
            System.out.println("FIRSTTIMENOW");
            SharedPreferensessClass.getInstance(getBaseContext()).setLink("http://your_link");


            SharedPreferensessClass.getInstance(getBaseContext()).setFirstTimeFalse();
        }

最后一步,使用此代码从SharePreferencess获取链接并将其放入webView

myWebView.loadUrl(SharedPreferensessClass.getInstance(context).getLink());

注意:即使用户清除了数据,该值也不会丢失,因为这将是第一次:D

编码愉快!