Skip to content

Instantly share code, notes, and snippets.

@xxnjdlys
Created December 26, 2014 10:55
Show Gist options
  • Save xxnjdlys/f817b19474d6e2ea994a to your computer and use it in GitHub Desktop.
Save xxnjdlys/f817b19474d6e2ea994a to your computer and use it in GitHub Desktop.
interface
package com.wukongtv.wkremote.client;
import android.annotation.SuppressLint;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.JavascriptInterface;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.loopj.android.http.TextHttpResponseHandler;
import com.wukongtv.wkremote.client.NetWork.UdpManager;
import com.wukongtv.wkremote.client.Util.RemoteUtil;
import com.wukongtv.wkremote.client.Util.UmengOnlineConfig;
import com.wukongtv.wkremote.client.http.WKAsyncHttpClient;
import org.apache.http.Header;
/**
* Created by sadieyu
* Date: 14-12-01.
* Time: 下午5:23
* Goodluck and enjoy it.
*/
public class SuNingWebViewFragment extends Fragment implements View.OnClickListener {
private TextView mTvBack;
private WebView mWebView;
private static final String SUNING_SHOPPING_URL_DEF = "http://ott.suning.com/ott-web/wk/index.htm?channelno=50191&deviceid=IMEI&ver=1.0";
// private static final String SUNING_APK_DOWNLOAD_URL = "http://app.suning.com/a.php?s=r/suning_50191 ";
private static final String JS_INTERFACE_NAME = "WKInterface";
private LinearLayout mProgerss;
public static SuNingWebViewFragment newInstance() {
return new SuNingWebViewFragment();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@SuppressLint({"SetJavaScriptEnabled", "AddJavascriptInterface"})
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_su_ning_web_view, container, false);
mWebView = (WebView) v.findViewById(R.id.wv_suning);
mProgerss = (LinearLayout) v.findViewById(R.id.webview_progressbar);
mTvBack = (TextView) v.findViewById(R.id.webview_message_back);
TextView mTVRefresh = (TextView) v.findViewById(R.id.webview_message_refresh);
mTvBack.setOnClickListener(this);
mTVRefresh.setOnClickListener(this);
mWebView.setBackgroundColor(getResources().getColor(R.color.webview_bg_color));
mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
if(isAdded()){
mWebView.setBackgroundColor(getResources().getColor(R.color.webview_bg_color));
}
mWebView.addJavascriptInterface(new JavaScriptInterface(), JS_INTERFACE_NAME);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
mProgerss.setVisibility(View.VISIBLE);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
mProgerss.setVisibility(View.INVISIBLE);
if (mWebView.canGoBack()) {
mTvBack.setBackgroundResource(R.drawable.webviewtab_back_normal);
} else {
mTvBack.setBackgroundResource(R.drawable.webviewtab_back_disable);
}
}
});
/**
* TEST_HTML file:///android_asset/test.html
*/
String suNingurl = UmengOnlineConfig.getUmengOnlineParam(getActivity(), UmengOnlineConfig.SUNING_SHOPPING_URL, SUNING_SHOPPING_URL_DEF);
mWebView.loadUrl(suNingurl);
return v;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.webview_message_back:
mWebView.goBack();
break;
case R.id.webview_message_refresh:
mWebView.reload();
break;
}
}
public class JavaScriptInterface {
@JavascriptInterface
public void onAction(String action, String data) {
String url = RemoteUtil.getSuNingUrl(UdpManager.getInstance().getCurrentDevice(), action, data);
WKAsyncHttpClient.getInstance().get(url,null,new TextHttpResponseHandler() {
@Override
public void onProgress(int bytesWritten, int totalSize) {
}
@Override
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
UdpManager.Device d = UdpManager.getInstance().getCurrentDevice();
if (null == d) {
Toast.makeText(getActivity(), "请先连接设备...", Toast.LENGTH_SHORT).show();
}
Log.v("SADIEYU", responseString);
}
@Override
public void onSuccess(int statusCode, Header[] headers, String responseString) {
Log.v("SADIEYU", "SUCCESS");
}
});
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment