webview 기능이있는 Android 프로젝트가 있습니다. 이 webview는 내 자산 폴더에 저장된 정적 html 파일을로드합니다. 또한 내 자산 폴더에 제 3 자 자바 스크립트 라이브러리 (렁)입니다. 거기에 내 HTML 파일의 머리에 스크립트 태그에 몇 가지 자바 스크립트가 있습니다. 그 자바 스크립트는 메서드와 객체를 참조하십시오. 내 html 파일 참조 스크립트 태그를 통해 rangy. 함수 및 메서드를 사용하려고하면 읽는 오류가 발생합니다.Android WebView : 스크립트 태그를 사용하여 내 자산 폴더에서 외부 자바 스크립트 파일로드
Cannot call method '[any method from rangy library]' of
undefined
다음은 관련 코드 조각입니다.
<html lang="en">
<head>
<title> </title>
<meta charset="utf-8">
<style type="text/css">
</style>
<script type="text/javascript" src="rangy.js"></script>
<script type="text/javascript" src="rangy-serializer.js"></script>
<script type="text/javascript">
//...My native js
</script>
</head>
가 여기에 배회하는 라이브러리의 정말 넓은 스트로크입니다 : 내가 돌아 다니기에 알맞은 (가) 있습니다
이입니다. 난 단지 내가 내 질문에 관련이있는 느낌이 게시물에 HTE 라이브러리의 일부를 포함하고 있습니다 :
window['rangy'] = (function() {
//This is all the code for rangy
});
여기 배회 참조 내 기본 JS의 일부입니다.
jsHandler.restoreSelection = function(selectionDetails) {
try{
window.document.body.style.background="yellow";
window.rangy.deserializeSelection(decodeURIComponent(selectionDetails.replace(/\s+$/, "")));
window.document.body.style.background="green";
}
catch(err){
window.document.body.innerHTML = err.message;
}
};
나는 jsHandler.restoreSelection을 발사합니다 내 응용 프로그램에서 버튼이 : 안드로이드 웹보기는 기본적으로이 정보를 제공하지 않기 때문에 끝의 catch 블록은 HTML 문서의 본문에 오류를 인쇄() 함수를 호출합니다. 이 버튼을 누르면 배경이 흰색에서 노란색으로 바뀌지 만 예외가 잡히고 본문 텍스트가 맨 위에 올린 오류 메시지로 바뀝니다. 내 앱의 설정에 어떤 문제가 있습니까? 내 자산 폴더에있는 html 파일에서 외부 js 파일을 참조하는 올바른 방법은 무엇입니까? (참고 : 나는 자바 스크립트가 켜져있다).
고맙습니다.