Titanium WebView의 동작을 잘 모르는 경우

4260 단어 Titanium
모르는 것은 htmlurl 프로퍼티, 동시에 지정했을 때 어느 것이 우선되는가?
라는 것.

Titanium의 WebView의 속성에는 html라는 속성과 url라는 속성이 있습니다.


속성
효용

htmlHTML 소스를 제공하면 렌더링하고 표시합니다.
urlHTML 파일의 경로를 주면로드하고 표시합니다.


그리고 Titanium.UI 다음의 클래스는 createHogeHoge()그 때, 인수에 건네준 오브젝트로 인스턴스의 프롭퍼티를 초기화할 수 있게 되어 있습니다.
var webView = Ti.UI.createWebView({
    url: "http://www.google.com"
});

html 과 url , 우선되는 것은 어느 쪽?



자, 인스턴스화시에 htmlurl 를 동시에 지정하면 어떻게 되는 것인가?
아래 코드로 실험.

app.js
var webView = Ti.UI.createWebView({
    html: '<html><head><title>hoge</title></head><body>mogemoge</body></html>',
    url: "http://www.google.com"
});

결과

html 가 우선되는 것 같습니다.

둘 다 지정했을 때, url 는 setHtml() 의 baseURL 의 대체가 되거나 하는 것인가?



WebView#setHtml 라는 메소드가 있습니다.
이 녀석은 두 번째 인수에 baseURL라는 옵션을 전달하면 상대 경로를 해결하는 데 사용되는 URL을 지정할 수 있습니다.
webView.setHtml(
    '<html><head><title>hoge</title></head><body><a href="/keyword/hoge">mogemoge</a></body></html>', {
    baseURL: "http://d.hatena.ne.jp/"
});
htmlurl 의 양쪽 모두를 지정했을 때, urlbaseURL 의 대체가 될까요?
아래 코드로 실험.

app.js
var webView = Ti.UI.createWebView({
    html: '<html><head><title>hoge</title></head><body><a href="/keyword/hoge">mogemoge</a></body></html>',
    url: "http://d.hatena.ne.jp/"
});

링크를 탭한 결과
[DEBUG] Loading: /keyword/hoge, Resource: keyword/hoge
[ERROR] Error loading /keyword/hoge
[ERROR] Error loading: file:///keyword/hoge, Error: Error Domain=NSURLErrorDomain Code=-1008 "resource unavailable" UserInfo=0xd48d940 {NSErrorFailingURLKey=file:///keyword/hoge, NSErrorFailingURLStringKey=file:///keyword/hoge, NSLocalizedDescription=resource unavailable}

대신은 되지 않았다.

결론


  • url 보다 html 쪽이 우선된다
  • urlbaseURL 대신 되지 않습니다
  • 좋은 웹페이지 즐겨찾기