キャッシュされたデータ、写真とか返すとかに使われる手法。
(Android開発者登録したから、リリースしたいな。)
public class MainActivity extends ActionBarActivity {
@SuppressLint("NewApi")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webView = (WebView)findViewById(R.id.webView);
webView.setWebViewClient(new MyWebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
//これがないとlocalファイルでajaxできない
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
webView.loadUrl("file:///android_asset/index.html");
}
}
public class MyWebViewClient extends WebViewClient{
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
Log.d("#WEB", "aa111:"+url);
if(url.indexOf("7777")>0){
Log.d("#WEB", "aa111:IN");
InputStream bais = new ByteArrayInputStream("{'Hello':'test'}".getBytes());
WebResourceResponse res = new WebResourceResponse("application/json","UTF-8",bais);
return res;
}
return super.shouldInterceptRequest(view, url);
}
@Override
//本当はこっちがつかわれるはずなんだけど、この先でまだ、上のほうがつかわれている
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
return super.shouldInterceptRequest(view, request);
}
}
0 件のコメント:
コメントを投稿