基于gsyvideoplayer的视频播放app,用okhttp3+retrofit2访问网络,Jsoup爬虫,极光推送

    我喜欢看韩剧,借此力,对我经常访问的网站:http://www.hanju.cc/进行了爬虫。这个网站没有app,对网站进行抓包时,没有什么可利用的数据,所以只能爬虫获取数据。

    1.该APP解决对于jsoup获取到的Document,对JavaScriptvar值获取:

public String getmediaplayerInfo(Document doc){
      String link="";
      Elements e = doc.getElementsByTag("script");
      String[] data = e.get(7).data().toString().split("var");
      for(int i=0;i<data.length;i++)
      {
          if(data[i].indexOf("vid=")!=-1) {
              link = data[i].substring(data[i].indexOf("vid='") + 5, data[i].indexOf("';"));
              Log.i("getNewsItems: link", link);
          }
      }
        return link;
}

  2.解决OkHttp post请求编码问题

   这里的“xuan”和“name”,是你要自己提交的值,不清楚看下载项目查看,包含这个问题的文件的路径在:

java\com\panpan\hantaimi\network。

private static class UserAgentInterceptor1 implements Interceptor {
    @Override
    public Response intercept(Chain chain) throws IOException {
        Request originalRequest = chain.request();
        Request requestWithUserAgent = originalRequest.newBuilder()
                .post(RequestBody.create(MediaType.parse("application/x-www-form-urlencoded;charset=gb2312"),
                        "pagesize=100&channeltype="+xuan+"&keyword="+name))
                .build();

        return chain.proceed(requestWithUserAgent);
    }
}
3.接入了极光推送,想了解更多还是到极光官网查看更多,我这里已经接好了,你只需改变某些值就可以应用。对极光发送过来的
信息进行处理后显示。注意观察我给的代码和图片里的值要对应,你可以在极光的发送通知进行键和值的编辑。然后在android代码

里根据键获取值,注意!键一定要对应上,不然就不反应,也不会报错。

String ss=bundle.getString(JPushInterface.EXTRA_EXTRA);
JSONObject jextra=new JSONObject(ss);
String type=jextra.getString("type");

String uri="";
if(type.equals("hanju")) {
   uri = jextra.getString("hanju");
   Intent mIntent = new Intent(context,NewshanjuActivity.class);
   mIntent.putExtra(ConstantUtil.EXTRA_URL, uri);
    mIntent.putExtra(ConstantUtil.EXTRA_go, "no");
   mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP );
   context.startActivity(mIntent);
}
else if(type.equals("daitai")) {
   uri = jextra.getString("daitai");
   String img= jextra.getString("img");
   Intent mIntent = new Intent(context, NewsDetailActivity.class);
   mIntent.putExtra(ConstantUtil.EXTRA_IMG_URL, img);
   mIntent.putExtra(ConstantUtil.EXTRA_URL, uri);
   mIntent.putExtra(ConstantUtil.EXTRA_TITLE, bundle.getString(JPushInterface.EXTRA_NOTIFICATION_TITLE));
   mIntent.putExtra(ConstantUtil.xuan,"wen");
   mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP );
   context.startActivity(mIntent);
}
else if(type.equals("tuku")) {
   uri = jextra.getString("tuku");
   String img= jextra.getString("img");
   Intent mIntent = new Intent(context, NewsDetailActivity.class);
   mIntent.putExtra(ConstantUtil.EXTRA_IMG_URL, img);
   mIntent.putExtra(ConstantUtil.EXTRA_URL, uri);
   mIntent.putExtra(ConstantUtil.EXTRA_TITLE, bundle.getString(JPushInterface.EXTRA_NOTIFICATION_TITLE));
   mIntent.putExtra(ConstantUtil.xuan,"tu");
   mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP );
   context.startActivity(mIntent);
}
 
 

该app仅供学习使用。项目:https://github.com/panyancen/hanjumi,apk:
http://www.panpan55.top/app-debug.apk

主要参考项目:

https://github.com/HotBitmapGG/bilibili-android-client

https://github.com/CarGuo/GSYVideoPlayer

非常感谢,各位博主提供的源码。

如有问题,留个评论啊。




猜你喜欢

转载自blog.csdn.net/qq_34414578/article/details/80619642