うちのアプリでは操作説明やバージョン情報をWebViewで表示しています。

WebViewの中にはassets内のページを表示する場合とGoogle Playや外部ブログ等へリンクする場合があります。

この機能ですが一部のAndroid端末で正常に動作していない事が判りました。

具体的にはdocomoのdtab (android 4.1.2)で、assets内のページを探せない状態になりました。

そこで下記の様な対応を行いました。

●htmlでの記述
↓asetts内へリンクさせる場合
<td align=”left”><a href=”gaiyou.html”>備忘録の概要</a></td>

↓外部へリンクさせる場合、赤文字を追記
<a href=”http://www.facebook.com/NPG.WEB?new-brows“>facebook</a><br><br>

●モジュール側
青文字部分を追記

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.info);

        WebView webView = (WebView)findViewById(R.id.WebView01);

        webView.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                // “new-brows”と記述されたらブラウザーで表示する
                if(url.contains(“new-brows”)){
                    Uri uri = Uri.parse(url);
                    Intent intent =new Intent(Intent.ACTION_VIEW, uri);
                    startActivity(intent);
                }
                // WebViewで表示する
                else{
                    view.loadUrl(url);
                }
                return true;
            }
        });
        webView.loadUrl(“file:///android_asset/info.html”);
    }

これでnew-browsと記載された部分のみ外部ブラウザを開く様になります。