2015年5月1日金曜日

HagaoitaのAndroid側のメモ

Ajaxでアクセスしたものに対して途中で、自分の好きなものを返す。
キャッシュされたデータ、写真とか返すとかに使われる手法。
(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 件のコメント:

コメントを投稿