APP內與H5網頁數據交互以及使用方法

由於APP版本發佈之後,對於應用內的固定頁面及場景無法隨意改變,只能通過版本迭代的方式來更改。後來在APP內嵌入網頁之後,通過後臺更改不同的配置路徑,即可打開不同的頁面,瀏覽器端的內容可以隨時更改,比較靈活。

但是原生APP與網頁之間的數據原本是互相獨立的,打開網頁後,點擊網頁內的內容若無任何特殊條件依然是普通跳轉,從一個網頁進入下一個網頁,流程依然在進行網頁端進行,APP端的流暢以及較好的使用體驗無法體現,所以這其中就需要網頁與APP之間進行數據傳遞;

首先,需要APP開發人員在app內注入相應的操作函數或者方法,用來控制APP中的頁面跳轉以及數據交互;
例如此時app開發人員已經在他們的代碼中注入了一個toDetail的方法,方法傳遞一個商品id參數,此方法名稱需與網頁內部使用名稱保持一致,在網頁內部打開時,執行此方法,將網頁內的goodsid傳遞至app端,打開原生app的商品詳情頁面,此時就完成了一次數據傳遞;

<html>
	<body>
		<button “toDetail(goodsid)”  title="在app內打開的網頁按鈕,傳遞參數至原生APP">iphone XS</button>


		<script>
			function toDetail(goods_id) {
				if(/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
					//IOS
					try {
						//給你傳值進行詳情頁
						window.webkit.messageHandlers.toDetail.postMessage({ body: '"' + goods_id + '"' });
					} catch(e) {
						//瀏覽器
						//alert(e);
						window.location.href = "goods.php?id=" + goods_id;
					}
				} else if(/(Android)/i.test(navigator.userAgent)) {
					//Android
					try {
						var yuyu = eval('(' + window.jkslw.getUserInfo() + ')');

						window.jkslw.toDetail(goods_id);
					} catch(e) {
						//alert(e);//自己瀏覽器訪問
						window.location.href = "goods.php?id=" + goods_id;
					}
				} else {
					window.location.href = "goods.php?id=" + goods_id;
				}
			}
		</script>
	</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章