html 5ページ携帯電話のアプリを起動


htmlでは、webviewでjs bridgeを通過しない限り、アプリケーションがインストールされているかどうかを判断することはできません.ここでは、この目的を1つの方法で達成します.
1、AndroidManifestを編集する.xml:
主に2つ目を追加して、myappはschemaを識別するために使用して、携帯電話システムが唯一であることを保証することができるほうがいいです.そうすれば、選択ボックスをポップアップするのではなく、アプリケーションを開くことができます.
Android:pathPrefixはurlのpathを識別し、stringを通じてactivityに自分のデータを添付することができます.例えば、完全なurlはmyapp://xxx/openwith?data=mydata
[html] view plaincopy
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 < activity       android:name = "com.abc.MainActivity"       android:configChanges = "orientation|keyboardHidden|navigation|screenSize"       android:screenOrientation = "landscape"       android:theme = "@android:style/Theme.NoTitleBar.Fullscreen"   >      < intent-filter >          < action   android:name = "android.intent.action.MAIN"   />          < category   android:name = "android.intent.category.LAUNCHER"   />      intent-filter >  
   < intent-filter >          < action   android:name = "android.intent.action.VIEW"   />          < category   android:name = "android.intent.category.BROWSABLE"   />          < category   android:name = "android.intent.category.DEFAULT" />          < data   android:scheme = "myapp"   android:pathPrefix = "/xxx/openwith"   />      intent-filter >  
t;/activity>
にactivityでdataデータを します.
1
2
3
4
5
6 [java] view plaincopy   public void onCreate(Bundle savedInstanceState) {         Uri uridata = this.getIntent().getData();         String mydata = uridata.getQueryParameter("data");         ...   }
2、htmlページの :
ページ がappの な かもしれませんが、ここには なjsコードしか かれていません.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 [javascript] view plaincopy function openApp() {                 if (/android/i.test(navigator.userAgent)) {                 var isrefresh = getUrlParam('refresh'); //  refresh                  if(isrefresh == 1) {                     return                 }                 window.location.href = 'myapp://xxx/openwith?data=mydata';                 window.setTimeout(function () {                         window.location.href += '&refresh=1' //  ,                       // myapp://                   }, 500);             }        }
のコードはこのような を することができて、 にmyapp://を して、もしシステムが することができるならば、あるいはすでにインストールしました
myapp のアプリケーションがインストールされている は、 くことができます.また、 くことができない は、 します.
のページは、locationをリセットするのと じです.