うちのアプリでは操作説明やバージョン情報を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と記載された部分のみ外部ブラウザを開く様になります。