Deeplink使用經驗
1.Deeplink
一個網站有很多頁面,每個頁面有自己的地址,通過頁面的網址打開各個深層的頁面;
一個應用也可以包含多個頁面,Deeplink技術配置各個頁面的對外鏈接,可以通過具體的鏈接打開各個深層的頁面,
一個deeplink鏈接可以包含以下資訊:url,clicktrackers,fallback,extensions

- URL SCHEME
我們可以把一個app看做一個獨立的網站,而URL Scheme就是網址,比如撥號,我們使用tel://112 就可以打開撥號應用,是否能打開app的具體頁面依賴于其本身是否支持deeplink,系統本身有一些默認 的url scheme,如tel://, mailto://等,
該頁面對應的URL(URI): deeplink://com.example.demo2/open
adb shell am start -a android.intent.action.VIEW -d deeplink://com.example.demo2/open
對外公開scheme的部分應用:https://www.cnblogs.com/ygunoil/p/11654867.html
- Intent

Intent是一個將要執行的動作的抽象的描述,一般來說是作為引數來使用,由 Intent來協助完成 Android各個組件之間的通訊,
我們以Activity的跳轉為例,Intent可分為顯示和隱式兩種:
顯式的方式明確跳轉的Activity是哪一個:
Intent intent = new Intent(Activity-1.this, Activity-2.class)
startActivity(intent)
隱式的方式不明確指定啟動哪個Activity,而是設定Action、Data、Category,讓系統來篩選出合適的Activity,篩選是根據所有的來篩選:

此處設定了對外的url scheme,可通過封裝Intent 跳轉
Uri uri = Uri.parse(url)
Intent intent = new Intent(Intent.ACTION_VIEW).setData(uri)
intent.putExtra(key, value)
startActivity(intent)
參考:https://developer.android.google.cn/guide/components/intents-filters
2.WebView
2.1WebView是android中一個非常重要的控制元件,它的作用是用來展示一個web頁面,它使用的內核是webkit引擎,4.4版本之后,直接使用Chrome作為內置網頁瀏覽器,
- loadUrl
用于加載指定url的API,如webView.loadUrl(“https://www.google.com”) - WebSettings
設定Webview的引數,如是否支持頁面中的js代碼,快取,編碼格式等 - WebViewClient
處理各種通知和請求事件,其中有幾個方法可以重寫 - onPageStarted
開始載入頁面呼叫的,我們可以設定一個loading的頁面,告訴用戶程式在等待網路回應, - onPageFinished
在頁面加載結束時呼叫,我們可以關閉loading 條,切換程式動作 - onReceivedError
加載頁面的服務器出現錯誤時(如404)呼叫 - shouldOverrideUrlLoading
在網頁上的所有加載都經過這個方法,這個函式我們可以做很多操作,回傳false表示通過webview加載url;回傳true表示通過自定義方式加載url, - WebChromeClient
輔助 WebView 處理 Javascript 的對話框,網站圖示,網站標題等等 - onCloseWindow
js中呼叫window.close會觸發該方法,可通過該方法實作頁面自動關閉 - onProgressChanged
頁面加載進度,可通過該方法自定義頁面加載進度UI
2.2.Android與js互動
- addJavascriptInterface
添加供js呼叫的java代碼 - evaluateJavascript(“javascript:Function(’” + parameter + “’)”, [resultCallback]);
Java呼叫js中的方法,并且可以獲取其回傳 - Denied starting an intent without a user gesture

- net::ERR_UNKNOWN_URL_SCHEME
通過shouldOverrideUrlLoading自定義方式加載url
2.3 WebView支持intent格式,實作app跳轉

轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/255245.html
標籤:其他
