【Android】WebView内のURLスキームでのIntent

WebView内で「info://open」というリンクがあったらInfoActivityを開くまでの流れ


WebView内のリンクがhttpなどではなかったらIntentする。

Info画面のボタンを押したらActivityを閉じる

上記の流れを実装します。




スポンサーリンク





onCreateのsetWebViewClientしているところを変更します。



MainActivity.java



InfoActivityを作成して、Manifestにactivityを追加。

<activity android:name=".InfoActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT"/>
        <data android:scheme="info"
            android:host="open" />
    </intent-filter>
</activity>



infoのレイアウトにボタンを用意して、onClickメソッドを用意

onClickメソッドにはInfoActivity.this.finish();とActivityを閉じるだけの処理を書いてあげる。



WebView内のスキームは処理をちゃんと書かないとスキームが動いてくれないらしいので、Intentを書くことを忘れずに。

ブラウザからならManifestにdataを追加するだけでスキームしてくれます。