在html頁面中判斷本地app是否安裝並開啟
html中其實是無法判斷應用是否安裝,除非在webview中通過js bridge,這裡通過一種方式達到此目的。
1、編輯AndroidManifest.xml:
主要是增加第二個<intent-filter>,myapp用來標識schema,最好能保證手機系統唯一,那樣就可以開啟應用,而不是彈出一個選擇框。
android:pathPrefix標識url的path,可以附帶自己的資料通過string傳遞到activity,比如完整url為 myapp://xxx/openwith?data=mydata
<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>
</activity>
然後通過activity獲得data資料: public void onCreate(Bundle savedInstanceState) {
Uri uridata = this.getIntent().getData();
String mydata = uridata.getQueryParameter("data");
...
}
2、編寫html頁面:
整個頁面也許是某個app的詳細介紹,這裡只寫出關鍵的js程式碼:
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。
相關文章
- js判斷本地是否安裝appJSAPP
- 判斷服務是否開啟,應用是否安裝,並安裝應用
- 京東在html5頁面中開啟本地app的解決方案HTMLAPP
- jQuery 判斷頁面元素是否存在jQuery
- js如何判斷頁面中是否存在某個元素JS
- 在首頁判斷是否登入並執行登陸
- ASP.NET CORE中判斷是否移動端開啟網頁ASP.NET網頁
- js判斷是否在微信內建瀏覽器中開啟JS瀏覽器
- 混合APP開發的套路(四):在html頁面中開啟專案中的ActivityAPPHTML
- 如何判斷頁面是否存在某個元素
- 判斷是否微信 IPhone 開啟iPhone
- 判斷手機是否安裝app的javascript程式碼APPJavaScript
- iOS判斷使用者是否開啟APP通知開關iOSAPP
- Wix安裝程式中判斷是否安裝的.net framwork 4.5
- javascript如何判斷一個頁面元素是否存在JavaScript
- 在 Web 中判斷頁面是不是重新整理Web
- js 怎樣判斷使用者是否在瀏覽當前頁面JS
- 判斷ios裝置中是否安裝了某款應用iOS
- 判斷centos7是否安裝vimCentOS
- 怎樣判斷mysql是否安裝成功MySql
- js如何判斷頁面是否已經載入完成JS
- 在applet程式中要開啟html網頁是否需要一些系統配置?APPHTML網頁
- 判斷excel檔案是否被開啟Excel
- 判斷是否在微信瀏覽器中瀏覽器
- 判斷oracle是否啟動Oracle
- 帝國CMS利用PHP判斷當前頁面是否為首頁PHP
- Android 微信支付 微信是否安裝判斷Android
- ios 判斷使用者是否開啟許可權---並跳轉設iOS
- PHP 判斷一個字元是否在字串中PHP字元字串
- Array · 判斷某元素是否在陣列中陣列
- Android判斷裝置是否開啟WIFI、GPRS資料連線AndroidWiFi
- py+selenium 自動判斷頁面是否報錯並顯示在自動化測試報告【原創】測試報告
- H5網頁判斷終端並喚起appH5網頁APP
- 如何判斷我的網站是否成功安裝SSL網站
- 判斷物件是否在視線內物件
- Linux判斷URL是否存在,並返回IPLinux
- jquery 判斷email地址是否合法並儲存jQueryAI
- 零頁面機制在缺頁中斷中的作用