rexxar-android
rexxar-android copied to clipboard
页面跳转及传递参数问题
1 请问 如何从页面 A 页面 B?
- A页面 /book/index.html
- B页面 /book/detail.html?id=101111
2 id=101111 参数如何传递?
实际环境中 url会被转换为 file:///http://cdn.xxxx.com/rexxar/book/re_details-edfdc283f2.html?uri=ifitting://xxxx.com/cashbox/re_details?id=77992017022800000005
@xiaolongyuan
“请问 如何从页面 A 页面 B?”
rexxar页面的跳转都是基于uri的,所以首先需要给页面A和B定义好route,比如 页面A: xx://xx.com/book/index 页面B: xx://xx.com/book/detail?id=101111
从页面A打开页面B,只需要在页面A中,然后在webview中处理xx://xx.com/book/detail?id=101111
的跳转即可, webview中对uri的处理可以做的更通用一些,比如1. 先查看rexxar能否处理该uri;2. 再查看native页面是否可以处理该uri 3. 默认处理
“id=101111 参数如何传递?”
当我们用rexxarview打开xx://xx.com/book/detail?id=101111
这个uri的时候,rexxar底层会根据route查找html,替换成file:///http://cdn.xxxx.com/rexxar/book/re_details-edfdc283f2.html?uri=ifitting://xxxx.com/cashbox/re_details?id=77992017022800000005
,这些逻辑都是疯状态rexxarview里面,不需要关心
在html页面里面可以通过window.location.href解析得到完整的uri(包含uri中的参数)
谢谢回复。
还有情况就是
1. 生产环境 开发环境 问题
我想到是 线上有专门线上路由 线下走线下路由 线上访问形式不变 线下开发 以官方推荐的
在浏览器中通过 http://localhost:8080/rexxar/demo.html?uri=douban://douban.com/rexxar_demo/ 这样的url来查看页面。
请问这种思路对么 或者有更适合的方式么?
2 各种访问情况问题
- a. APP 内嵌 H5 URI 形式 ( xx://xx.com/book/detail?id=101111)
- b. APP webview 以 url 形式 ( http://h5.xxxx.com/book/detail.html?id=101111 )
- c. 在浏览器中访问 ( http://h5.xxxx.com/book/detail.html?id=101111 )
场景说明 :
为什么需要支持 b c 方式进行 ? 因为活动页。
3 以如何形式打开页面问题
- h5中如何触发打开页面动作? 使用 location.href=xx://xx.com/book/detail?id=101111 然后在 WebviewClient拦截 虽然可以导航到新页但是 会导致当前页404
- 当 rexxarview 拦截到 xx://xx.com/book/detail?id=101111 请求时 是新建一个Activity 还是 在当前 Activity 重新加载?
- 当 rexxarview 拦截到 http://h5.xxxx.com/book/detail.html?id=101111 请求时 是新建一个Activity 还是 在当前 Activity 重新加载?
我现在是
open(uri) {
// super.call({
// action:'open',
// uri:uri,
// mode
// });
let iframe = document.createElement('iframe');
iframe.src = uri;
iframe.style.display = 'none';
document.documentElement.appendChild(iframe);
setTimeout(function() {
document.documentElement.removeChild(iframe);
}, 0);
}
再次感谢您抽空解答 谢谢