大转盘抽奖
首先通过我们的网络工具类Rxjava Retrofit 头参拦截器 进行用户信息拦截实现用户抽奖
// A code block
var foo = 'bar';
// An highlighted block
//创建请求头的拦截器
private static final class headerInterceptro implements Interceptor{
@RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN_MR1)
@Override
public Response intercept(Chain chain) throws IOException {
//获取sp里的参数
//获取sp里的参数
SharedPreferences user = MyApplication.context.getSharedPreferences("user", Context.MODE_PRIVATE);
String userId = user.getString("userId", "");
String sessionId = user.getString("sessionId", "");
Request request = chain.request();
Request build = request.newBuilder()
.addHeader("userId", userId)
.addHeader("sessionId", sessionId)
.removeHeader("User-Agent")//移除旧的
.addHeader("User-Agent", WebSettings.getDefaultUserAgent(MyApplication.context))
.addHeader("ak","0110010010000")
.build();
return chain.proceed(build);
}
}
**
进行登录
// A code block
var foo = 'bar';
// An highlighted block
HashMap<String, Object> map = new HashMap<>();
map.put("phone","账号");
map.put("pwd","加密后的密码");
RetrofitMananger.getInstance().create()
.getInfoToPosttoMap(MyUrl.Login_Url,map)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<ResponseBody>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(ResponseBody responseBody) {
try {
String string = responseBody.string();
LoginBean loginBean = new Gson().fromJson(string, LoginBean.class);
Toast.makeText(MainActivity.this, loginBean.getMessage()+"aa", Toast.LENGTH_SHORT).show();
SharedPreferences user = MyApplication.context.getSharedPreferences("user", Context.MODE_PRIVATE);
user.edit()
//userId
.putString("userId",loginBean.getResult().getUserId()+"")
//sessionId
.putString("sessionId",loginBean.getResult().getSessionId())
.commit();
if (loginBean.getStatus().equals("0000")){
startActivity(new Intent(MainActivity.this,HomeActivity.class));
//在自己的url中设置一个布尔值判定当前状态
MyUrl.isNet=true;
}
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
点击进入抽奖轮盘
WebView的各种设置属性配置
// web_prize.addJavascriptInterface(new WebClick(),null);
WebSettings webSettings = dazhanpan.getSettings();
// 让WebView能够执行javaScript
webSettings.setJavaScriptEnabled(true);
// 让JavaScript可以自动打开windows
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
// 设置缓存
webSettings.setAppCacheEnabled(true);
// 设置缓存模式,一共有四种模式
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
// 设置缓存路径
// webSettings.setAppCachePath("");
// 支持缩放(适配到当前屏幕)
webSettings.setSupportZoom(true);
// 将图片调整到合适的大小
webSettings.setUseWideViewPort(true);
// 支持内容重新布局,一共有四种方式
// 默认的是NARROW_COLUMNS
webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
// 设置可以被显示的屏幕控制
webSettings.setDisplayZoomControls(true);
// 设置默认字体大小
webSettings.setDefaultFontSize(12);
dazhanpan.loadUrl(id);
```话不多说看代码:
// A code block
var foo = ‘bar’;
```javascript
// An highlighted block
public class WebViewActivity extends AppCompatActivity {
private WebView dazhanpan;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web_view);
initView();
SharedPreferences user = MyApplication.context.getSharedPreferences("user", Context.MODE_PRIVATE);
String userId = user.getString("userId", "");
String sessionId = user.getString("sessionId", "");
String userInfo = sessionId + ";" + userId;
Log.e("aaa",userInfo);
initView();
String id = "http://mobile.bwstudent.com/htm/lottery/index.html";
dazhanpan.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
return false;// 返回false
}
});
// web_prize.addJavascriptInterface(new WebClick(),null);
WebSettings webSettings = dazhanpan.getSettings();
// 让WebView能够执行javaScript
webSettings.setJavaScriptEnabled(true);
// 让JavaScript可以自动打开windows
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
// 设置缓存
webSettings.setAppCacheEnabled(true);
// 设置缓存模式,一共有四种模式
webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
// 设置缓存路径
// webSettings.setAppCachePath("");
// 支持缩放(适配到当前屏幕)
webSettings.setSupportZoom(true);
// 将图片调整到合适的大小
webSettings.setUseWideViewPort(true);
// 支持内容重新布局,一共有四种方式
// 默认的是NARROW_COLUMNS
webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
// 设置可以被显示的屏幕控制
webSettings.setDisplayZoomControls(true);
// 设置默认字体大小
webSettings.setDefaultFontSize(12);
dazhanpan.loadUrl(id);
if (MyUrl.isNet != false) {
String userAgentString = webSettings.getUserAgentString();
String ua = userAgentString + "/" + userInfo;
Log.i("抽奖", ua);
String[] split = ua.split("/");
String[] split1 = split[split.length - 1].split(";");
Log.i("抽奖", split1[1]);
Log.i("抽奖", split1[0]);
Log.e("aaa",userAgentString);
webSettings.setUserAgentString(userAgentString + "/" + userInfo);
} else {
Toast.makeText(this, "请先登录tubie", Toast.LENGTH_SHORT).show();
}
}
private void initView() {
dazhanpan = (WebView) findViewById(R.id.dazhanpan);
}
}