이 프로젝트는 자바 스크립트와 네이티브 objc 메소드 사이의 통신에 관한 것입니다. 그리고 저는 Apple이 IOS7에서 JavascriptCore를 도입했다고 들었습니다. 여기 내 샘플 HTML은IOS7에 소개 된 Javascriptcore로 UIWebview의 ARC 문제
<html>
<head>
</head>
<body>
<script>
function test2()
{
TASK.test2();
}
</script>
<form>
<button type='button' onclick='TASK.test()'>Test</button>
</form>
</body>
</html>
이며 내 원시 코드입니다. 나는 내가 JSExports 구현으로 내 클래스에 javascriptContext를 할당 webViewDidFinishLoad에이
@protocol TASKExports <JSExport>
-(void)test;
-(void)test2;
포함되어 있습니다.
JSContext *ctx = [webView valueForKeyPath:@"documentView.webView.mainFrame.javaScriptContext"];
ctx[@"TASK"] = self;
프로그램을 실행하면 모든 것이 잘되지만,이 viewcontroller가 팝업됩니다. 그것이 dealloc이 아니며 무언가를 유지한다는 것을 발견했습니다. 나는 그것을 알아낼 수있는 몇 가지 방법을 시도했다.
접근 방식 1, html로 scrtpt 태그를 제거하십시오. 이
<script>
function test2()
{
TASK.test2();
}
</script>
둘째를 제거, 내가 확신이 자바 스크립트 문맥에 의해 유지되는이 라인
ctx[@"TASK"] = self;
에게 명령입니다. 그러나 어느 부분이 잘못 되었습니까 ?? 많은 감사
:
은 당신의 상황에 맞는 실행 클래스의 수도 사용하는 대표단을 상호 작용할 수 있습니다. –